components:
  schemas:
    Contents:
      properties:
        all_aliases_valid:
          description: "Whether a valid SSL certificate exists on the domain's aliases.\n\n* `1` —\_A valid SSL certificate exists.\n* `0`\_—\_A valid SSL certificate does **not** exist.\n\n**Note:**\n\nThis return **only** appears if you set the `return_https_redirects_status` parameter to `1`."
          enum:
            - 1
            - 0
          type: integer
        can_https_redirect:
          description: "Whether a valid SSL certificate exists or AutoSSL runs on the domain.\n\n* `1` —\_A valid SSL certificate exists or AutoSSL runs.\n* `0` —\_A valid SSL certificate does **not** exist and AutoSSL does **not** run.\n\n**Note:**\n\nThis return **only** appears if you set the `return_https_redirects_status` parameter to `1`."
          enum:
            - 1
            - 0
          type: integer
        documentroot:
          description: The absolute path to the domain's document root.
          format: path
          type: string
        domain:
          description: The domain's name.
          format: domain
          type: string
        group:
          description: The domain's group.
          type: string
        hascgi:
          description: "Whether CGI is enabled for the domain.\n\n* `1` —\_Enabled.\n* `0` —\_Disabled."
          enum:
            - 1
            - 0
          type: integer
        homedir:
          description: The absolute path to the cPanel account's home directory.
          format: path
          type: string
        ip:
          description: The domain's IPv4 address.
          format: ipv4
          type: string
        ipv6:
          description: "The domain's IPv6 address.\n\n* null —\_The account does **not** use IPv6."
          format: ipv6
          nullable: true
          type: string
        is_https_redirecting:
          description: "Whether the domain redirects to `https`.\n\n* `1` —\_The domain redirects to `https`.\n* `0` —\_The domain does **not** redirect to `https`.\n\n**Note:**\n\nThis return **only** appears if you set the `return_https_redirects_status` parameter to `1`."
          enum:
            - 1
            - 0
          type: integer
        is_temporary:
          description: |-
            Whether the domain is a temporary domain.
            * `1` — The domain is temporary.
            * `0` — The domain is not temporary.
          enum:
            - 1
            - 0
          type: integer
        no_cache_update:
          description: "Whether the domain is subject to cache updates.\n\n* `1` —\_The domain updates caches.\n* `0` —\_The domain does **not** update caches."
          enum:
            - 1
            - 0
          type: integer
        owner:
          description: The WHM account (`root` or a reseller) that owns the cPanel account.
          type: string
        serveradmin:
          description: The domain's administrator's contact email address.
          format: email
          type: string
        serveralias:
          description: A space-separated list of the domain's aliases.
          format: domain
          type: string
        servername:
          description: The domain's identifier on the server.
          format: domain
          type: string
        type:
          description: "The type of domain:\n\n* `addon_domain` —\_The domain is an addon domain.\n* `sub_domain` —\_The domain is a subdomain.\n* `parked_domain` — The domain is a parked domain (domain alias)."
          enum:
            - addon_domain
            - sub_domain
            - parked_domains
          type: string
        usecanonicalname:
          description: "The domain's Canonical Name (CNAME) setting.\n\n* `On` —\_Use the domain's CNAME.\n* `Off` —\_Do **not** use the domain's CNAME."
          enum:
            - 'On'
            - 'Off'
          type: string
        user:
          description: The cPanel account's username.
          format: username
          type: string
        userdirprotect:
          description: "The domain's [Apache `mod_userdir` Tweak](https://go.cpanel.net/whmdocsApachemod_userdirTweak)\nsetting.\n\n* `1` —\_Enabled.\n* `0` —\_Disabled."
          enum:
            - 1
            - 0
          type: integer
    CreateUserResponse:
      allOf:
        - $ref: '#/components/schemas/SubaccountBase'
        - properties:
            dismissed_merge_candidates:
              description: >-
                An array of objects containing service candidates that the
                system dismissed from merges.
              items:
                $ref: '#/components/schemas/SubaccountBase'
              type: array
            has_expired_invite:
              description: |-
                Whether an expired account login invitation exists.
                * `1` - Expired account invitation exists.
                * `0` - Expired account invitation does **not** exist.
              enum:
                - 0
                - 1
              example: 0
              type: integer
            has_invite:
              description: |-
                Whether an account login invitation exists.
                * `1` - Account invitation exists.
                * `0` - Account invitation does **not** exist.
              enum:
                - 0
                - 1
              example: 0
              type: integer
            invite_expiration:
              description: When the invitation expires. A date in Unix time format.
              example: 1591718154
              format: unix_timestamp
              type: integer
            merge_candidates:
              description: >-
                An array of objects that represents the service accounts that
                the system could merge for

                this subaccount.
              items:
                $ref: '#/components/schemas/SubaccountBase'
              type: array
          type: object
    EditUserSubaccountBase:
      properties:
        alternate_email:
          description: An alternate email address for the subaccount's user.
          example: user@example.com
          format: email
          type: string
        avatar_url:
          description: The user's subaccount profile photo.
          example: https://img.example.com/avatars/example.jpg
          format: url
          type: string
        can_delete:
          description: |-
            Whether the cPanel account user can delete the subaccount.

            * `1` - Can delete.
            * `0` - **Cannot** delete.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        can_set_password:
          description: >-
            Whether the cPanel account user can change the subaccount's
            password.


            * `1` - Can change.

            * `0` - **Cannot** change.


            **Note:**

              The function returns a `0` value for subaccounts that inherit their password from the cPanel account.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        can_set_quota:
          description: >-
            Whether the cPanel account user can change the subaccount's disk
            usage quota.


            * `1` - Can change.

            * `0` - **Cannot** change.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        dismissed:
          description: >-
            Whether the cPanel account user dismissed the merge prompt for the
            service account.


            **Note:**

              **Only** service accounts return this value.

            * `1` - Dismissed.

            * `0` - Did **not** dismiss.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        domain:
          description: |-
            The Subaccount user's associated domain.

            A domain that the cPanel account owns.
          example: example.com
          format: domain
          type: string
        full_username:
          description: The subaccount's username and domain name.
          example: user@example.com
          type: string
        guid:
          description: The subaccount unique identifier.
          example: >-
            N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
          type: string
        has_expired_invite:
          description: |-
            Whether an expired account login invitation exists.

            * `1` - Expired account invitation exists.
            * `0` - Expired account invitation does **not** exist.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        has_invite:
          description: |-
            Whether an account login invitation exists.

            * `1` - Account invitation exists.
            * `0` - Account invitation does **not** exist.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        has_siblings:
          description: >-
            Whether the service account shares a `full_username` value with
            another service account.


            * `1` - Shares.

            * `0` - Does **not** share.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        invite_expiration:
          description: When the invitation expires.
          example: 1591718154
          format: unix_timestamp
          type: integer
        issues:
          description: Information about any issues or problems with the subaccount.
          items:
            properties:
              area:
                description: The affected section of cPanel & WHM.
                example: quota
                type: string
              limit:
                description: The set quota megabyte (MB) limit for the affected subaccount.
                example: 1500
                type: integer
              message:
                description: The description of the issue.
                example: Your account is over quota.
                type: string
              service:
                description: |-
                  The affected service.
                  * `email`
                  * `ftp`
                  * `webdisk`
                enum:
                  - email
                  - ftp
                  - webdisk
                example: email
                type: string
              type:
                description: |-
                  The type of issue.
                  * `error`
                  * `warning`
                  * `info`
                enum:
                  - error
                  - warning
                  - info
                example: info
                type: string
              used:
                description: The number of megabytes (MB) that the account currently uses.
                example: 2000
                type: integer
            type: object
          type: array
        parent_type:
          description: >-
            The type of account that could own the service account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not** yet
            exist, but the user could create as part of a merge.

            * `null`- **Not** a merge candidate.
          example: hypothetical
          type: string
        phone_number:
          description: >-
            The subaccount user's phone number.


            The number conforms to the
            [ITU-T](https://en.wikipedia.org/wiki/ITU-T)'s
            [E.164](https://en.wikipedia.org/wiki/E.164)-recommended standard
            for the representation of telephone numbers.
          example: '+15551234567'
          type: string
        real_name:
          description: |-
            The name of the subaccount's user.

            * A first name, a last name, or a first name and last name.
            * An empty string.
          example: John Doe
          type: string
        services:
          description: >-
            This object contains information about the subaccount's access to
            email, FTP, and Web Disk.
          properties:
            email:
              description: >-
                This object contains the information that indicates the
                subaccount's email status.
              properties:
                enabled:
                  description: >-
                    Whether the subaccount can access Webmail, POP, and IMAP
                    services.


                    * `1` - Can access.

                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 1
                  type: integer
                quota:
                  description: >-
                    The maximum amount of disk space, in megabytes (MB),
                    allocated to the subaccount's email account.


                    **Note:**

                      This function will not return `0` as a value.
                  example: 100
                  type: integer
              type: object
            ftp:
              description: >-
                This object contains the information that indicates the
                subaccount's FTP status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access FTP.

                    * `1` - Can access.
                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's FTP home directory.
                  example: /subaccount
                  format: path
                  type: string
                quota:
                  description: >-
                    The maximum amount disk space, in megabytes (MB), that the
                    subaccount may use.


                    * A positive integer between `1` and `999999`

                    * `0` - Unlimited.
                  example: 100
                  type: integer
              type: object
            webdisk:
              description: >-
                This object contains information that indicates the subaccount's
                Web Disk status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access Web Disk.

                    * `1` - Can access.
                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's Web Disk home directory.
                  example: /bob
                  format: path
                  type: string
                perms:
                  description: |-
                    Whether to grant write permissions to the subaccount.

                    * `ro` - Read-only permissions.
                    * `rw` - Read and write permissions.
                  enum:
                    - ro
                    - rw
                  example: rw
                  type: string
                private:
                  description: >-
                    Whether to set the Web Disk directory's permissions to
                    public or private.


                    * `1` - Private (`0700`).

                    * `0` - Public (`0755`).
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
              type: object
          type: object
        special:
          description: >-
            Whether the account is a system-created special account that the
            user **cannot** remove.


            * `1` - A special account.

            * `0` - **Not** a special account.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        sub_account_exists:
          description: |-
            Whether a subaccount exists with the same username.

            * `1` - Exists.
            * `0` - Does **not** exist.

            **Note:**

              The function returns a `null` value if the account is **not** a service account.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        synced_password:
          description: >-
            Whether the user has synchronized the passwords for each of the
            subaccount's service accounts.


            * `1` - Synchronized.

            * `0` - **Not** synchronized.


            **Note:**

              The function returns a `null` value if the account is **not** a subaccount.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        type:
          description: >-
            The type of account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not**
            exist, but that the user could create as part of a merge.

            * `service` - A service account.

            * `cpanel` - The cPanel account.
          example: sub
          type: string
        username:
          description: >-
            The username for the subaccount.


            * Length - 64 characters.

            * Characters - `a-z`, `A-Z`, `0-9`, dot (`.`), hyphen (`-`),
            underscore (`_`).


            **Note:**

              This value does **not** include the domain name.
          example: example
          type: string
      type: object
    FeatureDescriptions:
      properties:
        features:
          description: The list of features in a role.
          example:
            - Backup
            - MySQL® Databases
            - PHP
          items:
            type: string
          type: array
        id:
          description: The role's ID.
          example: database
          type: string
        title:
          description: The role's title.
          example: Database
          type: string
    HashOutput:
      properties:
        addon_domains:
          description: An array of objects containing information about each addon domain.
          items:
            $ref: '#/components/schemas/Contents'
        main_domain:
          description: An array of objects containing information about the main domain.
          items:
            $ref: '#/components/schemas/MainDomainContents'
        parked_domains:
          description: An array of objects containing information about each parked domain.
          items:
            $ref: '#/components/schemas/Contents'
        sub_domains:
          description: An array of objects containing information about each subdomain.
          items:
            $ref: '#/components/schemas/Contents'
      type: object
    ListOutput:
      anyOf:
        - $ref: '#/components/schemas/Contents'
        - $ref: '#/components/schemas/MainDomainContents'
    LookupServiceAccountSubaccountBase:
      properties:
        alternate_email:
          description: An alternate email address for the subaccount's user.
          example: user@example.com
          format: email
          type: string
        avatar_url:
          description: The user's subaccount profile photo.
          example: https://img.example.com/avatars/example.jpg
          format: url
          type: string
        can_delete:
          description: |-
            Whether the cPanel account user can delete the subaccount.

            * `1` - Can delete.
            * `0` - **Cannot** delete.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        can_set_password:
          description: >-
            Whether the cPanel account user can change the subaccount's
            password.


            * `1` - Can change.

            * `0` - **Cannot** change.


            **Note:**

              The function returns a `0` value for subaccounts that inherit their password from the cPanel account.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        can_set_quota:
          description: >-
            Whether the cPanel account user can change the subaccount's disk
            usage quota.


            * `1` - Can change.

            * `0` - **Cannot** change.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        dismissed:
          description: >-
            Whether the cPanel account user dismissed the merge prompt for the
            service account.


            **Note:**

              **Only** service accounts return this value.

            * `1` - Dismissed.

            * `0` - Did **not** dismiss.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        domain:
          description: |-
            The Subaccount user's associated domain.

            A domain that the cPanel account owns.
          example: example.com
          format: domain
          type: string
        full_username:
          description: The subaccount's username and domain name.
          example: user@example.com
          type: string
        guid:
          description: The subaccount unique identifier.
          example: >-
            N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
          type: string
        has_expired_invite:
          description: |-
            Whether an expired account login invitation exists.

            * `1` - Expired account invitation exists.
            * `0` - Expired account invitation does **not** exist.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        has_invite:
          description: |-
            Whether an account login invitation exists.

            * `1` - Account invitation exists.
            * `0` - Account invitation does **not** exist.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        has_siblings:
          description: >-
            Whether the service account shares a `full_username` value with
            another service account.


            * `1` - Shares.

            * `0` - Does **not** share.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        invite_expiration:
          description: When the invitation expires.
          example: 1591718154
          format: unix_timestamp
          type: integer
        issues:
          description: Information about any issues or problems with the subaccount.
          items:
            properties:
              area:
                description: The affected section of cPanel & WHM.
                example: quota
                type: string
              limit:
                description: The set quota megabyte (MB) limit for the affected subaccount.
                example: 1500
                type: integer
              message:
                description: The description of the issue.
                example: Your account is over quota.
                type: string
              service:
                description: |-
                  The affected service.
                  * `email`
                  * `ftp`
                  * `webdisk`
                enum:
                  - email
                  - ftp
                  - webdisk
                example: email
                type: string
              type:
                description: |-
                  The type of issue.
                  * `error`
                  * `warning`
                  * `info`
                enum:
                  - error
                  - warning
                  - info
                example: info
                type: string
              used:
                description: The number of megabytes (MB) that the account currently uses.
                example: 2000
                type: integer
            type: object
          type: array
        parent_type:
          description: >-
            The type of account that could own the service account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not** yet
            exist, but the user could create as part of a merge.

            * `null`- **Not** a merge candidate.
          example: hypothetical
          type: string
        phone_number:
          description: >-
            The subaccount user's phone number.


            The number conforms to the
            [ITU-T](https://en.wikipedia.org/wiki/ITU-T)'s
            [E.164](https://en.wikipedia.org/wiki/E.164)-recommended standard
            for the representation of telephone numbers.
          example: '+15551234567'
          type: string
        real_name:
          description: |-
            The name of the subaccount's user.

            * A first name, a last name, or a first name and last name.
            * An empty string.
          example: John Doe
          type: string
        services:
          description: >-
            This object contains information about the subaccount's access to
            email, FTP, and Web Disk.
          properties:
            email:
              description: >-
                This object contains the information that indicates the
                subaccount's email status.
              properties:
                enabled:
                  description: >-
                    Whether the subaccount can access Webmail, POP, and IMAP
                    services.


                    * `1` - Can access.

                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 1
                  type: integer
                quota:
                  description: >-
                    The maximum amount of disk space, in megabytes (MB),
                    allocated to the subaccount's email account.


                    **Note:**

                      This function will not return `0` as a value.
                  example: 100
                  type: integer
              type: object
            ftp:
              description: >-
                This object contains the information that indicates the
                subaccount's FTP status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access FTP.

                    * `1` - Can access.
                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's FTP home directory.
                  example: /subaccount
                  format: path
                  type: string
                quota:
                  description: >-
                    The maximum amount disk space, in megabytes (MB), that the
                    subaccount may use.


                    * A positive integer between `1` and `999999`

                    * `0` - Unlimited.
                  example: 100
                  type: integer
              type: object
            webdisk:
              description: >-
                This object contains information that indicates the subaccount's
                Web Disk status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access Web Disk.

                    * `1` - Can access.
                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: The subaccount's Web Disk home directory.
                  example: /bob
                  format: path
                  type: string
                perms:
                  description: |-
                    Whether to grant write permissions to the subaccount.

                    * `ro` - Read-only permissions.
                    * `rw` - Read and write permissions.
                  enum:
                    - ro
                    - rw
                  example: rw
                  type: string
                private:
                  description: >-
                    Whether to set the Web Disk directory's permissions to
                    public or private.


                    * `1` - Private (`0700`).

                    * `0` - Public (`0755`).
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
              type: object
          type: object
        special:
          description: >-
            Whether the account is a system-created special account that the
            user **cannot** remove.


            * `1` - A special account.

            * `0` - **Not** a special account.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        sub_account_exists:
          description: |-
            Whether a subaccount exists with the same username.

            * `1` - Exists.
            * `0` - Does **not** exist.

            **Note:**

              The function returns a `null` value if the account is **not** a service account.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        synced_password:
          description: >-
            Whether the user has synchronized the passwords for each of the
            subaccount's service accounts.


            * `1` - Synchronized.

            * `0` - **Not** synchronized.


            **Note:**

              The function returns a `null` value if the account is **not** a subaccount.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        type:
          description: >-
            The type of account.


            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not**
            exist, but that the user could create as part of a merge.

            * `service` - A service account.

            * `cpanel` - The cPanel account.
          example: sub
          type: string
        username:
          description: >-
            The username for the subaccount.


            * Length - 64 characters.

            * Characters - `a-z`, `A-Z`, `0-9`, dot (`.`), hyphen (`-`),
            underscore (`_`).


            **Note:**

              This value does **not** include the domain name.
          example: example
          type: string
      type: object
    LookupServiceAccountSubaccountMergeCandidates:
      properties:
        merge_candidates:
          description: >-
            An array of objects that represents the service accounts that the
            system could merge for this subaccount.
          items:
            allOf:
              - $ref: '#/components/schemas/LookupServiceAccountSubaccountBase'
              - $ref: >-
                  #/components/schemas/LookupServiceAccountSubaccountMergeCandidatesEmpty
          type: array
      type: object
    LookupServiceAccountSubaccountMergeCandidatesEmpty:
      properties:
        merge_candidates:
          description: >-
            An array of objects that represents the service accounts that the
            system could merge for this subaccount.
          items:
            type: object
          type: array
      type: object
    MainDomainContents:
      properties:
        all_aliases_valid:
          description: "Whether a valid SSL certificate exists on the domain's aliases.\n\n* `1` —\_A valid SSL certificate exists.\n* `0`\_—\_A valid SSL certificate does **not** exist.\n\n**Note:**\n\nThis return **only** appears if you set the `return_https_redirects_status` parameter to `1`."
          enum:
            - 1
            - 0
          type: integer
        can_https_redirect:
          description: "Whether a valid SSL certificate exists or AutoSSL runs on the domain.\n\n* `1` —\_A valid SSL certificate exists or AutoSSL runs.\n* `0` —\_A valid SSL certificate does **not** exist and AutoSSL does **not** run.\n\n**Note:**\n\nThis return **only** appears if you set the `return_https_redirects_status` parameter to `1`."
          enum:
            - 1
            - 0
          type: integer
        customlog:
          description: >-
            The domain's [Apache
            log](http://httpd.apache.org/docs/2.2/mod/mod_log_config.html)

            information.
          properties:
            format:
              description: >-
                The [log
                file](https://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat)'s

                format.
              type: string
            target:
              description: >-
                The absolute path to the domain's log file in the `domlogs`
                directory.
              type: string
          type: object
        documentroot:
          description: The absolute path to the domain's document root.
          format: path
          type: string
        domain:
          description: The domain's name.
          format: domain
          type: string
        group:
          description: The domain's group.
          type: string
        hascgi:
          description: "Whether CGI is enabled for the domain.\n\n* `1` —\_Enabled.\n* `0` —\_Disabled."
          enum:
            - 1
            - 0
          type: integer
        homedir:
          description: The absolute path to the cPanel account's home directory.
          format: path
          type: string
        ifmodulemodsuphpc:
          description: Information about PHP scripts and suPHP.
          properties:
            group:
              description: If suPHP is enabled, PHP scripts run as this group.
              type: string
          type: object
        ip:
          description: The domain's IPv4 address.
          format: ipv4
          type: string
        ipv6:
          description: "The domain's IPv6 address.\n\n* null —\_The account does **not** use IPv6."
          format: ipv6
          nullable: true
          type: string
        is_https_redirecting:
          description: "Whether the domain redirects to `https`.\n\n* `1` —\_The domain redirects to `https`.\n* `0` —\_The domain does **not** redirect to `https`.\n\n**Note:**\n\nThis return **only** appears if you set the `return_https_redirects_status` parameter to `1`."
          enum:
            - 1
            - 0
          type: integer
        no_cache_update:
          description: "Whether the domain is subject to cache updates.\n\n* `1` —\_The domain updates caches.\n* `0` —\_The domain does **not** update caches."
          enum:
            - 1
            - 0
          type: integer
        owner:
          description: The WHM account (`root` or a reseller) that owns the cPanel account.
          type: string
        scriptalias:
          description: The domain's CGI information.
          properties:
            path:
              description: The absolute path to the domain's CGI directory.
              format: path
              type: string
            url:
              description: The domain's CGI directory.
              format: path
              type: string
          type: object
        serveradmin:
          description: The domain's administrator's contact email address.
          format: email
          type: string
        serveralias:
          description: A space-separated list of the domain's aliases.
          format: domain
          type: string
        servername:
          description: The domain's identifier on the server.
          format: domain
          type: string
        type:
          description: |-
            The domain is the cPanel account's main domain.

            * `main_domain` is the only possible value.
          enum:
            - main_domain
          type: string
        usecanonicalname:
          description: "The domain's Canonical Name (CNAME) setting.\n\n* `On` —\_Use the domain's CNAME.\n* `Off` —\_Do **not** use the domain's CNAME."
          enum:
            - 'On'
            - 'Off'
          type: string
        user:
          description: The cPanel account's username.
          format: username
          type: string
        userdirprotect:
          description: "The domain's [Apache `mod_userdir` Tweak](https://go.cpanel.net/whmdocsApachemod_userdirTweak)\nsetting.\n\n* `1` —\_Enabled.\n* `0` —\_Disabled."
          enum:
            - 1
            - 0
          type: integer
    MarketProviderProductMetaData:
      properties:
        base_name:
          description: The provider's base name.
          nullable: true
          type: string
        billing_type:
          description: The provider's billing type
          example: one-time
          type: string
        description:
          description: The product's description.
          example: >-
            An Extended Validation (EV) SLL Certificate. Browsers consider this
            to be more secure a domain validated (DV) certificate.
          type: string
        display_name:
          description: The product's display name.
          example: cPanel DV Certificate
          type: string
        enabled:
          description: |-
            Whether the product is enabled in the cPanel Market.
            * `1` - Enabled.
            * `0` - Not enabled.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        icon:
          description: The product's display icon.
          example: >-
            iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAKq2lDQ1BJQ0MgUHJvZmlsZQAASImV
            lgdQU+kWx7970xstAQEpoffeQUroofcmKiGhhBJiICDYEXEFVhQRacqCrjQFV6XIKiIWRFkUG/YF
            WRTUdbFgQ+Vd4BHee/N23rwzc3J/c+Z8/3vul++b+QNAvsfi81NgCQBSeRmCIA9nekRkFB33O8AC
            JUAC2kCFxU7nMwICfMDfxoe7AJp73jKY0/r7vv8akpy4dDYAUADCsZx0dirCp5DsZvMFGQCgkARq
            WRn8OS5HmCZABkT46BwnLHDPHMcu8O35npAgF4QnAMCTWSxBAgCk90idnslOQHTINISNeRwuD2FX
            hB3YiSwOwnkI66emps3xcYS1Y/9FJ+HfNGNFmixWgogXvmU+8K7cdH4KK/v/3I7/HakpwsV3qCJJ
            ThR4BiFPGWTPGpLTvEXMi/XzX2QuZ75/nhOFnqGLzE53iVpkDsvVe5GFyaGMRWYJltZyM5ghiyxI
            CxLpx6W7BYv045g+ohlS/EQcz3VnLnJOYkj4Imdyw/wWOT052Hupx0VUFwiDRDPHC9xF35iavjQb
            m7U0Q0ZiiOfSbBGiGThxrm6iOi9U1M/PcBZp8lMCRP1xKR6ienpmsGhtBnLAFjmJ5RWwpBMg2h/A
            AMEgFEk6CAOewBSYI4lMlRG3bu5MA5c0fraAm5CYQWcgtyaOzuSxDfXppsYmFgDM3cGFv/jd9fm7
            BcnGLtWykPUrviNnkbBUi3gKwDGkJs9aqmluBkAaBUBbL1soyFyooed+MIAIxAENyCF3XA254wbI
            ZJbADjgBN+AF/EEIiASrARskglQgAFlgA9gK8kEh2A32gUpQAw6BBnAMnAAd4Aw4Dy6Da+AGuAMe
            ghEwDl6CKfABzEAQhIMoEBWSg5QhDUgPMoWsIQfIDfKBgqBIKAZKgHiQENoAbYMKoRKoEqqFGqFf
            oNPQeagfGoLuQ6PQJPQW+gKjYDJMgxVhTdgItoYZsDccAq+CE+C1cA6cB++Cy+E6+CjcDp+Hr8F3
            4BH4JTyNAigSSgalgjJAWaNcUP6oKFQ8SoDahCpAlaHqUC2oLlQf6hZqBPUK9RmNRVPRdLQB2g7t
            iQ5Fs9Fr0ZvQRehKdAO6HX0RfQs9ip5Cf8dQMAoYPYwthomJwCRgsjD5mDLMEUwb5hLmDmYc8wGL
            xcpgtbBWWE9sJDYJux5bhD2AbcX2YIewY9hpHA4nh9PD2eP8cSxcBi4fV4E7ijuHu4kbx33Ck/DK
            eFO8Oz4Kz8Pn4svwTfhu/E38c/wMQYKgQbAl+BM4hGxCMeEwoYtwnTBOmCFKErWI9sQQYhJxK7Gc
            2EK8RHxEfEcikVRJNqRAEpe0hVROOk66QholfSZLkXXJLuRospC8i1xP7iHfJ7+jUCiaFCdKFCWD
            sovSSLlAeUL5JEYVMxRjinHENotVibWL3RR7LU4Q1xBniK8WzxEvEz8pfl38lQRBQlPCRYIlsUmi
            SuK0xLDEtCRV0kTSXzJVskiySbJfckIKJ6Up5SbFkcqTOiR1QWqMiqKqUV2obOo26mHqJeo4DUvT
            ojFpSbRC2jHaIG1KWkraXDpMep10lfRZ6REZlIymDFMmRaZY5oTMXZkvyxSXMZbFLdu5rGXZzWUf
            ZZfLOsnGyRbItsrekf0iR5dzk0uW2yPXIfdYHi2vKx8onyV/UP6S/KvltOV2y9nLC5afWP5AAVbQ
            VQhSWK9wSGFAYVpRSdFDka9YoXhB8ZWSjJKTUpJSqVK30qQyVdlBmatcqnxO+QVdms6gp9DL6Rfp
            UyoKKp4qQpValUGVGVUt1VDVXNVW1cdqRDVrtXi1UrVetSl1ZXVf9Q3qzeoPNAga1hqJGvs1+jQ+
            ampphmvu0OzQnNCS1WJq5Wg1az3Spmg7aq/VrtO+rYPVsdZJ1jmgc0MX1rXQTdSt0r2uB+tZ6nH1
            DugN6WP0bfR5+nX6wwZkA4ZBpkGzwaihjKGPYa5hh+FrI3WjKKM9Rn1G340tjFOMDxs/NJEy8TLJ
            NekyeWuqa8o2rTK9bUYxczfbbNZp9sZczzzO/KD5PQuqha/FDotei2+WVpYCyxbLSSt1qxiraqth
            a5p1gHWR9RUbjI2zzWabMzafbS1tM2xP2P5lZ2CXbNdkN7FCa0XcisMrxuxV7Vn2tfYjDnSHGIef
            HEYcVRxZjnWOT53UnDhOR5yeM3QYSYyjjNfOxs4C5zbnjy62LhtdelxRrh6uBa6DblJuoW6Vbk/c
            Vd0T3JvdpzwsPNZ79HhiPL0993gOMxWZbGYjc8rLymuj10Vvsnewd6X3Ux9dH4FPly/s6+W71/eR
            n4Yfz6/DH/gz/ff6Pw7QClgb8GsgNjAgsCrwWZBJ0IagvmBq8JrgpuAPIc4hxSEPQ7VDhaG9YeJh
            0WGNYR/DXcNLwkcijCI2RlyLlI/kRnZG4aLCoo5ETa90W7lv5Xi0RXR+9N1VWqvWrepfLb86ZfXZ
            NeJrWGtOxmBiwmOaYr6y/Fl1rOlYZmx17BTbhb2f/ZLjxCnlTMbZx5XEPY+3jy+Jn0iwT9ibMJno
            mFiW+Irrwq3kvknyTKpJ+pjsn1yfPJsSntKaik+NST3Nk+Il8y6mKaWtSxvi6/Hz+SNrbdfuWzsl
            8BYcSYfSV6V3ZtAQszMg1BZuF45mOmRWZX7KCss6uU5yHW/dQLZu9s7s5znuOT+vR69nr+/doLJh
            64bRjYyNtZugTbGbejerbc7bPL7FY0vDVuLW5K2/5RrnluS+3xa+rStPMW9L3th2j+3N+WL5gvzh
            HXY7an5A/8D9YXCn2c6Knd8LOAVXC40Lywq/FrGLrv5o8mP5j7O74ncNFlsWH9yN3c3bfXeP456G
            EsmSnJKxvb5720vppQWl7/et2ddfZl5Ws5+4X7h/pNynvLNCvWJ3xdfKxMo7Vc5VrdUK1TurPx7g
            HLh50OlgS41iTWHNl5+4P92r9ahtr9OsKzuEPZR56NnhsMN9P1v/3HhE/kjhkW/1vPqRhqCGi41W
            jY1NCk3FzXCzsHnyaPTRG8dcj3W2GLTUtsq0Fh4Hx4XHX/wS88vdE94nek9an2w5pXGquo3aVtAO
            tWe3T3Ukdox0RnYOnfY63dtl19X2q+Gv9WdUzlSdlT5b3E3szuuePZdzbrqH3/PqfML5sd41vQ8v
            RFy4fTHw4uAl70tXLrtfvtDH6Dt3xf7KmX7b/tNXra92XLO81j5gMdD2m8VvbYOWg+3Xra533rC5
            0TW0Yqj7puPN87dcb12+zbx97Y7fnaG7oXfvDUcPj9zj3Ju4n3L/zYPMBzMPtzzCPCp4LPG47InC
            k7rfdX5vHbEcOTvqOjrwNPjpwzH22Ms/0v/4Op73jPKs7Lny88YJ04kzk+6TN16sfDH+kv9y5lX+
            n5J/Vr/Wfn3qL6e/BqYipsbfCN7Mvi16J/eu/r35+97pgOknH1I/zHws+CT3qeGz9ee+L+Ffns9k
            fcV9Lf+m863ru/f3R7Ops7N8loA1bwUQZwDg+HgA3tYDQIkEgHoDAKLYgkeeD2jB188T+Dte8NHz
            YQnA4R4A5qwa0wmACoS1EKZuAWDOIiHWCDYzE+U/Iz3ezHRBiyyPWJOe2dm3swDgYgD4Njg7O1M+
            O/utDBkW8dfn/Ba8+byP4QKg/g7AOjX9jXVbwH/EPwCGGQVDbR7I2wAAAAlwSFlzAAALEwAACxMB
            AJqcGAAAAgRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRv
            YmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6
            cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAg
            PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0
            cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6
            Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9u
            PjM5MzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lv
            bj41MTU8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4x
            PC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRG
            Pgo8L3g6eG1wbWV0YT4KxfVkQAAACgpJREFUWAmNV1lvG9cZPTMcLsN9EUmJlCzJ+9oEaZAu6WIU
            CVD0pb+lr31x3/oL8hKgaOOiQVugRV10SZG2dlGntqPElmzZliWLEimJkkhxEfchh5ye71LMQ2Cg
            HXI4w5k793zL+c53R3McZ4T/Y+M4NUrTNHUcjYYYDm11brgMaLpLnTtwoPHzv7YJrPHliV/1oIyZ
            AA/6XTx//CmKu3nYgyH6/QEE78rrb+HC5dehiZ3jn1dN9aVrGnSZeDK5AE32ycgJeHHnJSqlAtwe
            E51mHceVffQ6NTTqFRQL27j1y/ewuvIZwTWMRuNoTeZ41VECKsHUD4q76HbbaszEmIlBo9FIGbeb
            38CtX/wUrUZFjZs5dRr+oB8ejwfBkIlIPIFgfA4f/eG3KB3uQdd15cirgCfXxpnU4Dozl7mR29zA
            Pg1pt5oYjmy4XC643W410WBg4Y8fvodWs4OF8+cxlV5QwAd7GzSoBZfhQnwqBq/P5PMWnj1+gFgy
            icRU+gsjJg5NwCdHuW643F40jluoVmp4uvoUhttAOBJBPJHA/OIi2rVDHOS34I/GGe4an+0TzIDH
            68dxowCfPwgzOMSFqxe4X8L6sw38+oMP8KMf/wTBQFBhSRplm6RT/ZH//Bg2may5NLgNLzyayUtA
            q9VBu9PFxtoKuod59G0X6kUJv0PiDWhkALMLZ7D29KlKkdc0MbB6+Oc//o3l53v4zpuXUC5uwz1/
            bhxJTVeYr4qEIXdUroXK2gjMOgxDg1ezkMu9RK9tMRKz+Nb3vst7OnIvPsfC6TOYnklhevYUKpUq
            U+bmuA5e5Kr45EUZ0zE/0o/v4b33f4ZAOIZsJouZ6TTS6TRi0RiCwSCjE4DP9MEYDGzmdJzvISVB
            rCwVC9h8toqdwwbOz6cxf3oej5ZX0Kx38e73r2Nl6QEuXbuKuYV5HB830LcsVkUVn9+7j93NEqw3
            stg/alEbdOXM/sEunj9/hkq1gS7H+v0mkskEMplpGH/501+Ryc4gNZ1CNB5HIBjA6vOXOCqUkT01
            i7m5Gdy9ex+f5i28/do5FHLb8IfCrJwen5vFTn4HAf5vVOpYnI4AzTJqlQpWn72ESQ4kOGf2VAap
            qZTihEGC2/aQz3dRrzfg8jj6jZer63jy6Cm2clsolcowmYJTmSnYFJlINIBHT9ZhUW9WN/IIDDs4
            e+40UjMM59QUmo0mfD4fRiRaMkrSuU3uHhgs0Xari4P9A2yu57C2to7t7QKqtSqEd5KGbDYDw8s8
            mAG/IsnAtrWVpcfOO+98jWXEXMWGWq8/cEL+APJPt5XAtFuzrJpjlp+blRBFeiaDWrVMHYjCzYq4
            du0iljfyGlPruGmEyzDg9XhVuXY7PWxsbDEdG5TxIdOja/poOCKzbQgXmH4nkghj/7CCkdvFHM84
            NZaox+dHLGLira9eQIq5K1fr6Pb6NJq5TKdU5TSbTbhIrMpxE8f1uiNixLqDQzGzbVvt/MOqcCEU
            DmAqEUc0GnMMqUUpr5HDKmBbklotHpRx9z99xONhjJgvP6O0eO4s5skHw+OCTo8GtgVn2ACVS+V6
            UKqhzxK9/MZrqLR76PVtiszYiJEzlAJTBMdQg+3YPJDwOnuBAPKrrBULpSSFKM1Gh9qew1GFHtEr
            h5M0qA9dhk60/rjWQP1oh2NHiJLVsWgUnY6lyOVnSvd29tCllgw5dlz/DC+Bxl1U5hjvrlQ8foO+
            QwLA+9KZVJuVUtE9hkZeiEKgUathmhGYSsaVuHg8BlLRCCKJGDQaFaAU23Sk37dQKOzig5sfolNr
            oUxSt6kRkgZp08IJg7vIvUaBUkI0JICgy5f4TAfoTRce0+cM+n006bmb0bSsvpLqKIGlEbXqdSQS
            EQST5+ANVfEV3cB6bgtrlPQgQrB6HVSKh1hfXqaEAeFYCkk6kWTJx6YS5EBUDKDbdF/CI+eOhIJW
            WATuk5hyTdJyjVq/ub6FK1cvYo51PTs7gw7Fp16tIBHJwGHTSqcSFJsqlj7+F+KZOWbUgS8SIFVZ
            nlwjCJ92Xmxi7fEjoRvi3giYgtgN3lVA45XMybmUBI3SGapyqY4LFxYRCQVUiNOsFL/XgOn1KRJG
            kmGs3L4NG26kZ7MUFzd+/+ePkGbFdFttusCokqzs/jB8HopdmDoQhsY0koQTcN7nKWOgTuQoBsjd
            TqevJHeBkpyjGH3y8R0Ut/NIZrPokPHN4gGqrR5uvv9zHLCCrr97nU+BXTMArxkg+JBz0QhZxjEK
            0tAGFLkheaEiMAGVhwRepUOWVSot7A0Mc4rCdO3qeaSnkySfH8lMho0miifLT3Dnb7dZuhVs7JSw
            VThk81pAkVXw6dIjhMMhpQVDgo+XamMMqTjBMtSv8pM3CKowxXtVtzo6vR5CpheF7T2l4abfhxBJ
            GI5PsVsWcO+zxziotGhMCKn5OeS2d2Dee4jM3Cmm5A4FzlLSSyw1pxIEpkKcFh+FnGqTC/JRFvAg
            obcZujZzGGRJFkoHVMgjyrwPJapjqXKM7fwu1pgSf8BUHbXB5mJ3W9jObamKCZF+smISLZCoisfi
            oEJS/7kgcUSiFA8IOhISqGGKpV1670glcHkm205+D4uLc2rxsbu7rxqRTcUrU7qbzQaOKNE7+SLe
            +uabFKEeTK4XRzZXEeLNiQECr7KrrjECCk9NLz8CLhvlkmSRRYZouiZPcOuzNK12F/IG0OL60SGz
            q/Um7t5/iFxhDy222KNGGVeunOGiZQalZlUq+gRc/JZKkBAw/yxtkWhyQCbnKMk/zyaWihBpDJ0u
            5o/xWUKiYroy5JjipDkuZGen8WB5HSOOYwPE21//Bi5fPoNc3iuzcbnHfIuyjcOg4E6mU/Oy88vG
            S2Icj5INa0ARojeqmchVGilkabLkNOqCpEVC17O6XNWk8cMffFtx5ezZWVykXkQpPpFIiE/wjUlW
            11xzDhkt6QnKzS8sUCQUwSHISZglPF0VZnlroXCI5SRjOhbHk2ebBO1DI7Es8kOiIxGZyyRx9dJp
            zGeTFBifCm+AxIVBIwjqD/uVECnckx8xRD66m8vwkdTcyQ0BGHL54+bEkmu+OinS+Px+VI4OsXtQ
            Yo/g5Lwr7BYDfaJuAR9Ljrxh5ERocly6wa6pdaE/HOH0KsQKRqBU5Hmim14vJ1LtiI46ir0Crlqo
            jDoZqR4y/Li/tIIBx8diIZYe1wbMsURClRkHieqVyxXcuXOfD5toNNtclh1xHOlG4k1IILQQr3Uv
            u5pcFJweV6w0X02osBX4eKCLQCm24pWVJ0zFBvXeBS/zyzdBjNcdLDcSRafxD6iAS9xnZuIq9/LO
            MM7+JPCCLhFhmoVo8no9YNlZJ8RT6jQB51idr94Wjev2LIRCEfzmd3/H9s6hYrjX64bJpiIeyLRL
            D5/j5q9ucd0wTTKPu6mLTkqEtBNHxRj15f//Ah9jPXoBZ9CgAAAAAElFTkSuQmCC
          format: base64 image
          type: string
        icon_mime_type:
          description: The icon's file type.
          example: image/svg+xml
          format: MIME
          type: string
        license_term:
          description: The providers license term
          example: 0
          minimum: 0
          type: integer
        max_users:
          description: The maximum number of users.
          example: 5
          minimum: 0
          nullable: true
          type: integer
        maximum_server_price:
          description: The maximum price that the system will allow for the product.
          example: 500.1
          format: currency
          nullable: true
          type: number
        minimum_server_price:
          description: The minimum price that the system will allow for the product.
          example: 3
          format: currency
          nullable: true
          type: number
        price:
          description: The product's price.
          example: 3
          format: currency
          nullable: true
          type: number
        price_unit:
          description: The currency code of the product's price.
          example: USD
          format: ISO-4217
          type: string
        product:
          description: The product name.
          example: Comodo EV Certificate
          type: string
        product_category:
          description: The product's category.
          example: N/A
          type: string
        product_group:
          description: The product's group.
          example: ssl_certificate
          type: string
        product_id:
          description: The product's ID.
          example: 176
          minimum: 1
          type: integer
        provider_display_name:
          description: >-
            The cPanel Market provider's display name.


            **Note:**


            The `_DISPLAY_NAME` attribute in the cPanel Market provider module
            contains this value.
          example: cPStore
          type: string
        provider_name:
          description: The cPanel Market provider's name.
          example: cPStore
          type: string
        recommended:
          description: |-
            Whether the product is recommended.
            * `1` — We recommend the product.
            * `0` — We do not recommend the product.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        requires_ip:
          description: |-
            Whether the product requires an IP address.
            * `1` — Requires an IP.
            * `0` — Does **not** require an IP.
          enum:
            - 0
            - 1
          example: 1
          type: integer
      type: object
    MarketProviderProductMetaDataType:
      anyOf:
        - $ref: '#/components/schemas/MarketProviderProductMetaData'
        - $ref: '#/components/schemas/SSLMarketProviderProductMetaData'
      discriminator:
        mapping:
          ssl_certificate: '#/components/schemas/SSLMarketProviderProductMetaData'
        propertyName: product_group
    Payload:
      description: The zone’s content.
      items:
        discriminator:
          mapping:
            comment: '#/components/schemas/ResponseComment'
            control: '#/components/schemas/ResponseControl'
            record: '#/components/schemas/ResponseRR'
          propertyName: type
        oneOf:
          - $ref: '#/components/schemas/ResponseRR'
          - $ref: '#/components/schemas/ResponseControl'
          - $ref: '#/components/schemas/ResponseComment'
      type: array
    ResponseBase:
      properties:
        line_index:
          description: The line’s index in the zone file.
          example: 22
          minimum: 0
          type: integer
        type:
          description: |-
            The type of object in the zone file:

            * `record` - A resource record.
            * `control` - A control statement.
            * `comment` - A line comment.
          enum:
            - record
            - control
            - comment
          type: string
      type: object
    ResponseComment:
      allOf:
        - $ref: '#/components/schemas/ResponseControlOrComment'
      title: Comment
    ResponseControl:
      allOf:
        - $ref: '#/components/schemas/ResponseControlOrComment'
      title: Control
    ResponseControlOrComment:
      allOf:
        - $ref: '#/components/schemas/ResponseBase'
        - properties:
            text_b64:
              description: The line’s text, encoded to base64.
              example: OyBab25lIGZpbGUgZm9yIHRleGFzLmNvbQ==
              format: base64
              type: string
          type: object
    ResponseRR:
      allOf:
        - $ref: '#/components/schemas/ResponseBase'
        - properties:
            data_b64:
              description: The resource record’s content, encoded to base64.
              items:
                example: dGV4YXMuY29tLg==
                format: base64
                type: string
              type: array
            dname_b64:
              description: >-
                The resource record’s owner, encoded to base64. A base64-decoded
                owner that lacks a trailing period (`.`) is a subdomain of the
                zone.
              example: dGV4YXMuY29tLg==
              format: base64
              type: string
            record_type:
              description: The resource record’s type.
              example: MX
              type: string
            ttl:
              description: The resource record’s TTL (Time-to-Live).
              example: 14400
              minimum: 0
              type: integer
          type: object
      title: Resource Record
    RestoreInProgress:
      properties:
        any_running:
          description: |-
            Whether the system is processing a backup restoration.

            * `1` - Restoration in progress. This is the only possible value.
          enum:
            - 1
          type: integer
        sites:
          description: |-
            Information about the site that the system is actively restoring.

            **Note:**

            We have not implemented this return.
          items:
            properties:
              id:
                description: |-
                  The restore process's unique ID.

                  * `null` is the only possible value.
                  * We have not implemented this return.
                enum:
                  - null
                nullable: true
                type: string
              site:
                description: The WordPress site's URL without the protocol prefix.
                format: domain
                type: string
              type:
                description: |-
                  The active process type.

                  * `restore` is the only possible value.
                enum:
                  - restore
                type: string
            type: object
          type: array
    RestoreNotInProgress:
      properties:
        any_running:
          description: |-
            Whether the system is processing a backup restoration.

            * `0` - No restoration in progress. This is the only possible value.
          enum:
            - 0
          type: integer
        last_outcome:
          description: The status of the last backup restoration.
          properties:
            error:
              description: >-
                Where the system encountered an error during the last backup
                restoration.


                * The error message from the restoration log database.

                * `null` - No occur occurred.
              nullable: true
              type: string
            have_outcome:
              description: >-
                Whether the restoration log shows a successful attempt
                previously occurred,

                successfully or unsuccessfully.


                * `1` - Restoration attempt occurred.

                * `0` - No restoration attempt occurred.
              enum:
                - 0
                - 1
              type: integer
            site:
              description: The WordPress site's URL without the protocol prefix.
              format: domain
              type: string
            status:
              description: >-
                The previous restoration attempt's result.


                * `success` - Successful restoration.

                * `error` - The attempted restoration resulted in an error.

                * `terminated` - The system stopped the restoration process.

                * `timeout` - The restoration process exceeded the allowed time
                limit.

                * `low-disk` - The server's disk space was insufficient to
                complete the restoration.

                * `low-quota` - The cPanel account's quota was insufficient to
                complete the restoration.
              enum:
                - success
                - error
                - terminated
                - timeout
                - low-disk
                - low-quota
              type: string
        sites:
          description: >-
            Information about the site that the system is actively restoring.


            **Note:**


            * This function returns an empty array when there is **not** an
            active

            backup restoration. This is the only possible value.

            * We have not implemented this return.
          type: object
    SSLMarketProviderProductMetaData:
      allOf:
        - $ref: '#/components/schemas/MarketProviderProductMetaData'
        - properties:
            x_certificate_term:
              description: >-
                An array that indicates the length of time and unit of time that
                the product secures for.
              example:
                - '1'
                - year
              items:
                type: string
              type: array
            x_identity_verification:
              additionalProperties:
                description: Contains additional properties that vary between products.
                x-additionalPropertiesName: certificate_properties
              description: >-
                Defines a schema for identity verification information for OV
                and EV certificates.
              properties:
                label:
                  description: The display name of the property.
                  example: >-
                    Dun & Bradstreet D-U-N-S (Data Universal Numbering System)
                    Number
                  type: string
                name:
                  description: The name of the property.
                  example: duns_number
                  type: string
              type: object
            x_max_http_redirects:
              description: >-
                The maximum number of HTTP redirections that the provider allows
                during a Domain Control Validation (DCV) check of the domain or
                domains in the certificate.
              minimum: 1
              type: integer
            x_payment_trigger:
              description: >-
                Indicates whether the provider charges immediately or when they
                issue the Secure Sockets Layer (SSL) certificate.


                * `checkout` — Collect payment and finalize immediately after
                checkout. Any failures to issue the certificate must prompt a
                separate refund.

                * `issuance` — Collect payment when the provider issues the
                certificate to the user.


                **Note:**


                For more information, read the _For certificate orders_ section
                of our [Guide to cPanel Market Provider
                Modules](https://go.cpanel.net/featureshowcasemarket)
                documentation.
              enum:
                - checkout
                - issuance
              type: string
            x_price_per_domain:
              description: The product's price per domain.
              example: 3
              minimum: 1
              type: number
            x_price_per_domain_maximum:
              description: The maximum `x_price_per_domain` value.
              example: 30
              minimum: 1
              type: number
            x_price_per_domain_minimum:
              description: The minimum `x_price_per_domain` value.
              example: 3
              minimum: 1
              type: number
            x_price_per_wildcard_domain:
              description: The price per domain for a wildcard certificate.
              example: 99
              minimum: 1
              type: number
            x_price_per_wildcard_domain_maximum:
              description: The maximum `x_prive_per_wildcard_domain` value.
              example: 30
              minimum: 1
              type: number
            x_price_per_wildcard_domain_minimum:
              description: The minimum `x_prive_per_wildcard_domain` value.
              example: 99
              minimum: 1
              type: number
            x_ssl_per_domain_pricing:
              description: >-
                Whether the provider uses per-domain pricing for this
                certificate.

                * `1` — Uses per-domain pricing.

                * `0` — Does **not** use per-domain pricing.
              enum:
                - 0
                - 1
              type: integer
            x_supports_dns_dcv:
              description: |-
                Whether this product supports DNS-based DCV.
                * `1` — Supports DNS DCV.
                * `0` — Does `not` support DNS DCV.
              enum:
                - 0
                - 1
              type: integer
            x_validation_type:
              description: The validation type.
              example: ev
              type: string
            x_warn_after:
              description: >-
                A length of time, in seconds, after which the cPanel interface
                warns the user that a problem may exist with the order. The
                warning suggests that they contact the cPanel Market provider's
                support contact.
              example: 14400
              minimum: 1
              type: integer
            x_wildcard_parent_domain_free:
              description: >-
                Indicates if a wildcard domain includes its parent domain. For
                example, `*.example.com` would include the `example.com` parent
                domain.


                * `1` — The domain does include its parent domain.

                * `0` — The domain does **not** include its parent domain.
              enum:
                - 0
                - 1
              type: integer
      type: object
    Score:
      type: object
      properties:
        master:
          description: The overall results for the check.
          type: object
          properties:
            title:
              description: The title of the check.
              example: Uptime
              type: string
            status:
              description: |-
                The check's summarized status.
                  * `good` — The check has returned a positive result.
                  * `bad`  — The check has returned a negative result.
              type: string
              example: good
              enum:
                - good
                - bad
            message:
              description: The check's status message.
              example: >-
                The project is proving to be very reliable (currently and in the
                last 30 days) and has good accessibility. The current level
                should be maintained.
              type: string
            description:
              description: A description of the check.
              example: >-
                If a project is unavailable, customers cannot visit, browse or
                make purchases. The accessibility assessment is based on the
                current situation, but also on historical values and trends.
              type: string
            identifier:
              description: An unique identifier for the check.
              example: Score:Basic:Uptime
              type: string
            score:
              description: >-
                A numeral score for the check.


                ** Note: **


                A higher score indicates that your website performs well in that
                check.
              example: 100
              type: integer
            incidents:
              type: array
              example: []
              default: []
            attributes:
              type: object
              properties:
                score:
                  type: integer
                  example: 100
                limit:
                  type: integer
                  example: 0
        sub_scores:
          description: >-
            Monitoring checks subcategory results.


            ** Note: **


            We use the check subcategory results to calculate the master
            results.
          type: array
          example: []
          default: []
          items:
            type: object
            properties:
              title:
                description: The title of the check subcategory.
                example: Current availability
                type: string
              status:
                description: |-
                  The check subcategory's summarized status.
                    * `good` — The check has returned a positive result.
                    * `bad`  — The check has returned a negative result.
                type: string
                example: good
                enum:
                  - good
                  - bad
              message:
                description: The check subcategory's status message.
                example: >-
                  All project pages can be reached and thus be visited by
                  potential customers.
                type: string
              description:
                description: A description of the check.
                example: >-
                  It is evaluated whether the project is currently accessible.
                  If it is not, this is usually due to technical reasons.
                type: string
              identifier:
                description: An unique identifier for the check.
                example: Score:Uptime:Down
                type: string
              score:
                description: >-
                  A numeral score for the check subcategory.


                  ** Note: **


                  A higher score indicates that your website performs well in
                  that check.
                example: 100
                type: integer
              incidents:
                example: []
                type: array
                default: []
              weight:
                description: >-
                  The weighted contribution of the subcategory check's `score`
                  result to the `master` object's `score` result.
                example: 20
                type: integer
              weighted_score:
                description: The score after weight has been adjusted.
                example: 20
                type: integer
              attributes:
                type: object
                properties:
                  scoring:
                    type: string
                    example: good
                  score:
                    type: integer
                    example: 100
                  components_processed:
                    type: integer
                    example: 1
                  components_failed:
                    type: integer
                    example: 0
                  limit:
                    type: integer
                    example: 0
                  tool:
                    type: string
                    example: KoalaPing
    ServiceAccount:
      properties:
        alternate_email:
          description: An alternate email address for the subaccount's user.
          example: user@example.com
          format: email
          nullable: true
          type: string
        avatar_url:
          description: The user's subaccount profile photo.
          example: https://img.example.com/avatars/example.jpg
          format: url
          nullable: true
          type: string
        can_delete:
          description: |-
            Whether the cPanel account user can delete the subaccount.
            * `1` - Can delete.
            * `0` - Cannot delete.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        can_set_password:
          description: >-
            Whether the cPanel account user can change the subaccount's
            password.

            * `1` - Can change.

            * `0` - Cannot change.


            **Note:**

              The function returns a `0` value for subaccounts that inherit their password from the cPanel account.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        can_set_quota:
          description: >-
            Whether the cPanel account user can change the subaccount's disk
            usage quota.

            * `1` - Can change.

            * `0` - Cannot change.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        dismissed:
          description: >-
            Whether the cPanel account user dismissed the merge prompt for the
            service account.

            * `1` - Dismissed.

            * `0` - Did not dismiss.


            **Note:**

              Only service accounts return this value.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        domain:
          description: The subaccount user's associated domain.
          example: example.com
          format: domain
          nullable: true
          type: string
        full_username:
          description: >-
            The subaccount's username and domain name. A valid username, the `@`
            character, and the associated domain.
          example: user@example.com
          type: string
        guid:
          description: The subaccount unique identifier.
          example: >-
            N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
          type: string
        has_siblings:
          description: >-
            Whether the service account shares a `full_username` value with
            another service account.

            * `1` - Shares.

            * `0` - Does not share.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        issues:
          description: Information about any issues or problems with the subaccount.
          items:
            properties:
              area:
                description: The affected section of cPanel & WHM.
                example: quota
                type: string
              limit:
                description: The set quota megabyte (MB) limit for the affected subaccount.
                example: 1500
                minimum: 0
                type: integer
              message:
                description: The description of the issue.
                example: Your account is over quota.
                type: string
              service:
                description: The affected service.
                enum:
                  - email
                  - ftp
                  - webdisk
                example: email
                type: string
              type:
                description: The type of issue.
                enum:
                  - error
                  - info
                  - warning
                example: info
                type: string
              used:
                description: The number of megabytes (MB) that the account currently uses.
                example: 2000
                minimum: 0
                type: integer
            type: object
          type: array
        merge_candidates:
          description: >-
            An array of service account objects that the system could merge for
            this subaccount.
          items:
            $ref: '#/components/schemas/ServiceAccount'
          type: array
        parent_type:
          description: >-
            The type of account that could own the service account.

            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does not yet
            exist, but the user could create as part of a merge.

            * `null` - Not a merge candidate.
          enum:
            - sub
            - hypothetical
          example: hypothetical
          nullable: true
          type: string
        phone_number:
          description: >-
            The subaccount user's phone number. A valid phone number that
            conforms to [ITU-T's E.164-recommended
            standard](https://en.wikipedia.org/wiki/ITU-T) for the
            representation of telephone numbers.
          example: '+15551234567'
          nullable: true
          type: string
        real_name:
          description: |-
            The name of the subaccount's user.
            * A first name, a last name, or a first name and last name.
            * An empty or null string.
          example: John Doe
          nullable: true
          type: string
        services:
          description: >-
            Information about the subaccount's access to email, FTP, and Web
            Disk.
          properties:
            email:
              description: Information that indicates the subaccount's email status.
              properties:
                enabled:
                  description: >-
                    Whether the subaccount can access Webmail, POP, and IMAP
                    services.

                    * `1` - Can access.

                    * `0` - Cannot access.
                  enum:
                    - 0
                    - 1
                  example: 1
                  type: integer
                quota:
                  description: >-
                    The maximum amount of disk space allocated to subaccount's
                    email account, in megabytes (MB).
                  example: 100
                  minimum: 0
                  type: integer
              type: object
            ftp:
              description: >-
                This object contains the information that indicates the
                subaccount's FTP status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access FTP.
                    * `1` - Can access.
                    * `0` - Cannot access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: >-
                    The subaccount's FTP home directory, relative to the cPanel
                    account's home directory.
                  example: /subaccount
                  format: path
                  type: string
                quota:
                  description: >-
                    The subaccount's FTP disk space quota.

                    * `1` to `999999` - The maximum disk space that the
                    subaccount may use, in megabytes (MB).

                    * `0` - Unlimited.
                  example: 100
                  maximum: 999999
                  minimum: 0
                  type: integer
              type: object
            special:
              description: >-
                Whether the account is a system-created special account that the
                user cannot remove.

                * `1` - A special account.

                * `0` - Not a special account.
              enum:
                - 0
                - 1
              example: 1
              type: integer
            webdisk:
              description: >-
                This object contains information that indicates the subaccount's
                Web Disk status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access Web Disk.
                    * `1` - Can access.
                    * `0` - Cannot access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                enabledigest:
                  description: >-
                    Whether the subaccount's Web Disk service has enabled Digest
                    Authentication.

                    * `1` - Digest Authentication is enabled.

                    * `0` - Digest Authentication is not enabled.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: >-
                    The subaccount's Web Disk home directory, relative to the
                    cPanel account's home directory.
                  example: /bob
                  format: path
                  type: string
                perms:
                  description: |-
                    Whether to grant write permissions to the subaccount.
                    * `ro` - Read-only permissions.
                    * `rw` - Read and write permissions.
                  enum:
                    - ro
                    - rw
                  example: rw
                  type: string
                private:
                  description: >-
                    Whether to set the Web Disk directory's permissions to
                    public or private.

                    * `1` - Private (0700).

                    * `0` - Public (0755).
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
              type: object
          type: object
        special:
          description: >-
            Whether the account is a system-created special account that the
            user **cannot** remove.

            * `1` - A special account.

            * `0` - Not a special account.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        sub_account_exists:
          description: |-
            Whether a subaccount exists with the same username.
            * `1` - Exists.
            * `0` - Does not exist.

            **Note:**

              The function returns a null value if the account is not a service account.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        synced_password:
          description: >-
            Whether the user has synchronized the passwords for each of the
            subaccount's service accounts.

            * `1` - Synchronized.

            * `0` - Not synchronized.


            **Note:**

              The function returns a null value if the account is not a subaccount.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        type:
          description: >-
            The type of account.

            * `cpanel` - The cPanel account.

            * `hypothetical` - A hypothetical subaccount that does not exist,
            but that the user could create as part of a merge.

            * `service` - A service account.

            * `sub` - A subaccount.
          enum:
            - cpanel
            - hypothetical
            - service
            - sub
          example: sub
          type: string
        username:
          description: The username for the subaccount.
          example: example
          format: username
          type: string
      type: object
    Services:
      properties:
        email:
          example: 500*2**20
          type: string
        ftp:
          example: 1
          type: integer
        webdisk:
          example: rw
          type: string
      type: object
    SubaccountBase:
      properties:
        alternate_email:
          description: An alternate email address for the subaccount's user.
          example: user@example.com
          format: email
          type: string
        avatar_url:
          description: The HTTPS URL to the user's subaccount profile photo image file.
          example: https://img.example.com/avatars/example.jpg
          format: url
          type: string
        can_delete:
          description: |-
            Whether the cPanel account user can delete the subaccount.
            * `1` - Can delete.
            * `0` - **Cannot** delete.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        can_set_password:
          description: >-
            Whether the cPanel account user can change the subaccount's
            password.

            * `1` - Can change.

            * `0` - **Cannot** change.


            **Note:**

              The function returns a `0` value for subaccounts that inherit their password from the cPanel account.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        can_set_quota:
          description: >-
            Whether the cPanel account user can change the subaccount's disk
            usage quota.

            * `1` - Can change.

            * `0` - **Cannot** change.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        dismissed:
          description: >-
            Whether the cPanel account user dismissed the merge prompt for the
            service account.


            * `1` - Dismissed.

            * `0` - Did **not** dismiss.


            **Note:**


            **Only** service accounts return this value.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        domain:
          description: The subaccount user's associated domain.
          example: example.com
          format: domain
          type: string
        full_username:
          description: The subaccount's username and domain name.
          example: user@example.com
          format: email
          type: string
        guid:
          description: The subaccount unique identifier.
          example: >-
            N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
          type: string
        has_siblings:
          description: >-
            Whether the service account shares a `full_username` value with
            another service account.

            * `1` - Shares.

            * `0` - Does **not** share.
          enum:
            - 0
            - 1
          example: 0
          type: integer
        issues:
          description: Information about any issues or problems with the subaccount.
          items:
            properties:
              area:
                description: The affected section of cPanel & WHM.
                example: quota
                type: string
              limit:
                description: The set quota megabyte (MB) limit for the affected subaccount.
                example: 1500
                minimum: 1
                type: integer
              message:
                description: The description of the issue.
                example: Your account is over quota.
                type: string
              service:
                description: |-
                  The affected service.
                  * `email`
                  * `ftp`
                  * `webdisk`
                enum:
                  - email
                  - ftp
                  - webdisk
                example: email
                type: string
              type:
                description: |-
                  The type of issue.
                  * `error`
                  * `warning`
                  * `info`
                enum:
                  - error
                  - warning
                  - info
                example: info
                type: string
              used:
                description: The number of megabytes (MB) that the account currently uses.
                example: 2000
                minimum: 1
                type: integer
            type: object
          type: array
        parent_type:
          description: >-
            The type of account that could own the service account.

            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does **not** yet
            exist, but the user could create as part of a merge.

            * `null` - **Not** a merge candidate.
          example: hypothetical
          nullable: true
          type: string
        phone_number:
          description: >-
            The subaccount user's phone number. A valid phone number that
            conforms to

            [ITU-T](https://en.wikipedia.org/wiki/ITU-T)'s

            [E.164](https://en.wikipedia.org/wiki/E.164)-recommended standard
            for the representation

            of telephone numbers.
          example: '+15551234567'
          type: string
        real_name:
          description: The name of the subaccount's user, if provided.
          example: John Doe
          type: string
        services:
          description: >-
            Information about the subaccount's access to email, FTP, and Web
            Disk.
          properties:
            email:
              description: Information about the subaccount's email status.
              properties:
                enabled:
                  description: >-
                    Whether the subaccount can access Webmail, POP, and IMAP
                    services.

                    * `1` - Can access.

                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 1
                  type: integer
                quota:
                  description: >-
                    The maximum amount of disk space, in megabytes (MB),
                    allocated to subaccount's email account.
                  example: 1500
                  minimum: 1
                  type: integer
              type: object
            ftp:
              description: Information about the subaccount's FTP status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access FTP.
                    * `1` - Can access.
                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: >-
                    The subaccount's FTP home directory, relative to the cPanel
                    account's home directory.
                  example: /subaccount
                  format: path
                  type: string
                quota:
                  description: >-
                    The subaccount's maximum FTP disk space quota, in megabytes
                    (MB).

                    * A string containing a non-negative float.

                    * `0.00` - Unlimited.
                  example: '0.00'
                  type: string
              type: object
            webdisk:
              description: Information about the subaccount's Web Disk status.
              properties:
                enabled:
                  description: |-
                    Whether the subaccount can access Web Disk.
                    * `1` - Can access.
                    * `0` - **Cannot** access.
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
                homedir:
                  description: >-
                    The subaccount's Web Disk home directory, relative to the
                    cPanel account's home directory.
                  example: /bob
                  format: path
                  type: string
                perms:
                  description: >-
                    Whether the subaccount has read-only or read and write
                    permissions.


                    * `ro` - Read-only permissions.

                    * `rw` - Read and write permissions.
                  example: rw
                  type: string
                private:
                  description: >-
                    Whether the subaccount's Web Disk directory permissions are
                    public or private.


                    * `1` - Private (`0700`).

                    * `0` - Public (`0755`).
                  enum:
                    - 0
                    - 1
                  example: 0
                  type: integer
              type: object
          type: object
        special:
          description: >-
            Whether the account is a system-created special account that the
            user **cannot** remove.

            * `1` - A special account.

            * `0` - **Not** a special account.
          enum:
            - 0
            - 1
          example: 1
          type: integer
        sub_account_exists:
          description: >-
            Whether a subaccount exists with the same username.

            * `1` - Exists.

            * `0` - Does not exist.


            **Note:**


            The function returns a null value if the account is **not** a
            service account.
          enum:
            - 0
            - 1
          example: 0
          nullable: true
          type: integer
        synced_password:
          description: >-
            Whether the user has synchronized the passwords for each of the
            subaccount's service accounts.

            * `1` - Synchronized.

            * `0` - **Not** synchronized.


            **Note:**


            The function returns a null value if the account is **not** a
            subaccount.
          enum:
            - 0
            - 1
          example: 0
          nullable: true
          type: integer
        type:
          description: >-
            The type of account.

            * `sub` - A subaccount.

            * `hypothetical` - A hypothetical subaccount that does not exist,
            but that the user could create as part of a merge.

            * `service` - A service account.

            * `cpanel` - The cPanel account.
          enum:
            - sub
            - hypothetical
            - service
            - cpanel
          example: sub
          type: string
        username:
          description: The subaccount's username.
          example: example
          type: string
      type: object
    SubaccountMergeCandidates:
      properties:
        merge_candidates:
          description: >-
            An array of objects that represents the service accounts that the
            system could merge for this subaccount.
          items:
            allOf:
              - $ref: '#/components/schemas/EditUserSubaccountBase'
              - $ref: '#/components/schemas/SubaccountMergeCandidatesEmpty'
          type: array
      type: object
    SubaccountMergeCandidatesEmpty:
      properties:
        merge_candidates:
          description: >-
            An array of objects that represents the service accounts that the
            system could merge for this subaccount.
          items:
            type: object
          type: array
      type: object
    TeamArray:
      items:
        properties:
          contact-email:
            example: team_user@example.com
            type: string
            format: email
          created:
            example: 1650036110
            type: integer
            format: unix_timestamp
          expire_date:
            example: 1674575562
            type: integer
            format: unix_timestamp
          expire_reason:
            example: team user 1 year
            type: string
          lastlogin:
            example: 1650046110
            type: integer
            format: unix_timestamp
          locale:
            example: en
            type: string
          notes:
            example: This is a note about team user.
            type: string
          password:
            example: encryptedpassword
            type: string
          roles:
            items:
              example: email,web
              type: string
            type: array
          secondary-contact-email:
            example: team_user_backup@example.com
            type: string
            format: email
          services:
            $ref: '#/components/schemas/Services'
          suspend_date:
            example: 1650046210
            type: integer
            format: unix-timestamp
          suspend_reason:
            example: team user is on vacation
            type: string
          username:
            example: teamuser
            type: string
      type: array
    TeamHash:
      properties:
        owner:
          example: cPanelUser
          type: string
        users:
          properties:
            username:
              example: teamuser
              type: string
            info:
              properties:
                contact-email:
                  example: team_user@example.com
                  type: string
                  format: email
                created:
                  example: 1650036110
                  type: integer
                  format: unix_timestamp
                expire_date:
                  example: 1674575562
                  type: integer
                  format: unix_timestamp
                expire_reason:
                  example: team user 1 year
                  type: string
                lastlogin:
                  example: 1650046110
                  type: integer
                  format: unix_timestamp
                locale:
                  example: en
                  type: string
                notes:
                  example: This is a note about team_user.
                  type: string
                password:
                  example: encryptedpassword
                  type: string
                roles:
                  items:
                    example: email,web
                    type: string
                  type: array
                secondary-contact-email:
                  example: team_user_backup@example.com
                  type: string
                  format: email
                services:
                  $ref: '#/components/schemas/Services'
                suspend_date:
                  type: string
                suspend_reason:
                  example: teamUser is on vacation
                  type: string
      type: object
    index_type:
      description: >-
        The directory's indexing type.


        * `standard` - The directory uses directory indexing with standard
        formatting.

        * `disabled` - The directory doesn't use directory indexing.

        * `inherit` - The directory uses the system's default settings.

        * `fancy` - The directory uses directory indexing with Apache® `httpd`’s
        `FancyIndexing` directive. The directory will include additional
        information such as file size and the date of the file's last update.
      enum:
        - standard
        - disabled
        - inherit
        - fancy
      example: inherit
      type: string
    trace_deliveryResponseBase:
      properties:
        address:
          description: The email address of an email message recipient.
          example: username@example.com
          format: email
          type: string
        type:
          description: >-
            A type of trace node. The system returns this value to indicate the
            **end** of routing.

            * `bounce` - The system rejected the email's delivery.

            * `command` - The system will run a command when it receives an
            email.

            * `defer` - The system deferred the email.

            * `discard` - The system discarded the email.

            * `error` - The system encountered an error.

            * `local_delivery` - The system sent the email to a local mailbox.

            * `remote_delivery` - The system sent the email via Simple Mail
            Transfer Protocol (SMTP).

            * `routed` - The system routed the email elsewhere.


            **Note:**

            * The structure of the `destinations` return changes depending on
            the `type` return value.

            * The `routed` type can return any other type's data structure as
            part of the `destinations` return value.


            For more information, see the return structure for each `type`
            return value below:
          example: local_delivery
          type: string
    trace_deliveryResponseBounce:
      allOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBase'
        - properties:
            destinations:
              properties:
                message:
                  description: >-
                    A message that the system sends when it rejects the delivery
                    of an email.
                  example: The system rejected the message.
                  type: string
                type:
                  $ref: '#/components/schemas/trace_deliveryTypeDescription'
              type: object
          type: object
    trace_deliveryResponseCommand:
      allOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBase'
        - properties:
            destinations:
              properties:
                command:
                  description: A command that the system runs when it receives the email.
                  example: >-
                    /usr/local/cpanel/bin/autorespond user@example.com
                    /home/cpmailuser/.autorespond
                  type: string
                type:
                  $ref: '#/components/schemas/trace_deliveryTypeDescription'
              type: object
          type: object
    trace_deliveryResponseDefer:
      allOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBase'
        - properties:
            destinations:
              properties:
                message:
                  description: A message that the system sends when it defers the email.
                  example: The system deferred the message.
                  type: string
                type:
                  $ref: '#/components/schemas/trace_deliveryTypeDescription'
              type: object
          type: object
    trace_deliveryResponseDiscard:
      allOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBase'
        - properties:
            destinations:
              properties:
                aliasfile:
                  description: >-
                    The file path on the system where Exim searched for the
                    `address` return value's aliases.


                    **Note:**


                    The function **only** returns this value if an alias exists
                    for the `address` value.
                  example: /etc/valiases/example.com
                  format: path
                  type: string
                type:
                  $ref: '#/components/schemas/trace_deliveryTypeDescription'
              type: object
          type: object
    trace_deliveryResponseError:
      allOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBase'
        - properties:
            destinations:
              properties:
                message:
                  description: An error message from the system.
                  example: >-
                    The mail server could not deliver mail to user@example2.com.
                    The account or domain may not exist, they may be
                    blacklisted, or missing the proper dns entries.
                  type: string
                result:
                  description: An error message.
                  example: DNS lookup of example2.com (MX) gave HOST_NOT_FOUND
                  type: string
                type:
                  $ref: '#/components/schemas/trace_deliveryTypeDescription'
              type: object
          type: object
    trace_deliveryResponseLocalDelivery:
      allOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBase'
        - properties:
            destinations:
              properties:
                mailbox:
                  description: The mailbox where the system sent the email.
                  example: user@example.com
                  format: email
                  type: string
                type:
                  $ref: '#/components/schemas/trace_deliveryTypeDescription'
              type: object
          type: object
    trace_deliveryResponseRemoteDelivery:
      allOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBase'
        - properties:
            destinations:
              items:
                properties:
                  mx:
                    description: >-
                      An array of strings containing [mail exchanger (MX)
                      information](https://en.wikipedia.org/wiki/MX_record).


                      Each string contains information for a single mail
                      exchanger (MX), including:
                       * The server's hostname.
                       * The server's resolving IP address.
                       * The MX record's priority. The lower the value, the higher its priority.
                       * Whether DNSSEC is enabled for the hostname.
                    items:
                      example: host.example.com [10.0.0.1] MX=20 dnssec=no
                      type: string
                    type: array
                  type:
                    $ref: '#/components/schemas/trace_deliveryTypeDescription'
                type: object
              type: array
    trace_deliveryType:
      anyOf:
        - $ref: '#/components/schemas/trace_deliveryResponseBounce'
        - $ref: '#/components/schemas/trace_deliveryResponseCommand'
        - $ref: '#/components/schemas/trace_deliveryResponseDefer'
        - $ref: '#/components/schemas/trace_deliveryResponseDiscard'
        - $ref: '#/components/schemas/trace_deliveryResponseError'
        - $ref: '#/components/schemas/trace_deliveryResponseLocalDelivery'
        - $ref: '#/components/schemas/trace_deliveryResponseRemoteDelivery'
      discriminator:
        mapping:
          bounce: '#/components/schemas/trace_deliveryResponseBounce'
          command: '#/components/schemas/trace_deliveryResponseCommand'
          defer: '#/components/schemas/trace_deliveryResponseDefer'
          discard: '#/components/schemas/trace_deliveryResponseDiscard'
          error: '#/components/schemas/trace_deliveryResponseError'
          local_delivery: '#/components/schemas/trace_deliveryResponseLocalDelivery'
          remote_delivery: '#/components/schemas/trace_deliveryResponseRemoteDelivery'
        propertyName: type
    trace_deliveryTypeDescription:
      description: >-
        A type of trace node. The system returns this value to indicate the
        **end** of routing.

        * `bounce` - The system rejected the email's delivery.

        * `command` - The system will run a command when it receives an email.

        * `defer` - The system deferred the email.

        * `discard` - The system discarded the email.

        * `error` - The system encountered an error.

        * `local_delivery` - The system sent the email to a local mailbox.

        * `remote_delivery` - The system sent the email via Simple Mail Transfer
        Protocol (SMTP).

        * `routed` - The system routed the email elsewhere.


        **Note:**

        * The structure of the `destinations` return changes depending on the
        `type` return value.

        * The `routed` type can return any other type's data structure as part
        of the `destinations` return value.
      example: local_delivery
      type: string
    schemas-TeamArray:
      items:
        properties:
          contact-email:
            example: team_user@example.com
            type: string
            format: email
          created:
            example: 1650036110
            type: integer
            format: unix_timestamp
          expire_date:
            example: 1674575562
            type: integer
            format: unix_timestamp
          expire_reason:
            example: team user 1 year
            type: string
          lastlogin:
            example: 1650046110
            type: integer
            format: unix_timestamp
          locale:
            example: en
            type: string
          notes:
            example: This is a note about team user.
            type: string
          roles:
            items:
              example: Email,Web
              type: string
            type: array
          secondary-contact-email:
            example: team_user_backup@example.com
            type: string
            format: email
          services:
            $ref: '#/components/schemas/Services'
          suspend_date:
            example: 1650046210
            type: integer
            format: unix-timestamp
          suspend_reason:
            example: team user is on vacation
            type: string
          username:
            example: teamuser
            type: string
      type: array
  securitySchemes:
    BasicAuth:
      scheme: basic
      type: http
externalDocs:
  url: https://cpanel.net/developers/
info:
  contact:
    email: cs@cpanel.net
    name: WebPros International, LLC
    url: https://cpanel.net/support/
  description: >-
    UAPI accesses the cPanel interface's features. Use this API to access and
    modify cPanel account data and settings.
  license:
    name: cPanel License
    url: https://cpanel.net/legal-notices/
  termsOfService: https://cpanel.net/legal-notices/
  title: cPanel UAPI
  version: 11.134.0.5
openapi: 3.0.2
paths:
  /AccountEnhancements/has_enhancement:
    get:
      description: >-
        This function returns whether a cPanel account has a specific [Account
        Enhancement](https://go.cpanel.net/account-enhancements).
      operationId: AccountEnhancements-has-enhancement
      parameters:
        - in: query
          name: id
          description: >-
            The identifier for a specific Account Enhancement.


            **Note:**


            To retrieve a list of all Account Enhancements IDs on the server,
            run the WHM API 1 `list_account_enhancements` function.
          required: true
          schema:
            type: string
            example: sample-enhancement-id
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list
                    type: string
                  module:
                    description: The name of the module called.
                    example: AccountEnhancements
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          * `1` - The Account Enhancement is assigned to the
                          cPanel account.

                          * `0` - The Account Enhancement is not assigned to the
                          cPanel account.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `reason` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate Account Enhancement assignment
      tags:
        - Account Enhancements
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              AccountEnhancements \
              has_enhancement \
              id=account_enhancement
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/AccountEnhancements/has_enhancement?id=account_enhancement
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file AccountEnhancements_has_enhancement.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/AccountEnhancements_has_enhancement.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/AccountEnhancements/,
                q/has_enhancement/,
                q/id=account_enhancement/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file AccountEnhancements_has_enhancement.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/AccountEnhancements_has_enhancement.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'AccountEnhancements',
                'has_enhancement',
                array('id' => 'sample_enhancement')
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 98
  /AccountEnhancements/list:
    get:
      description: >-
        This function lists a cPanel account's [Account
        Enhancements](https://go.cpanel.net/account-enhancements).
      operationId: AccountEnhancements-list
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list
                    type: string
                  module:
                    description: The name of the module called.
                    example: AccountEnhancements
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains the Account Enhancements that
                          the cPanel account can access
                        items:
                          properties:
                            id:
                              description: The Account Enhancement's id.
                              example: sample-enhancement-id
                              type: string
                              items:
                                type: string
                            name:
                              description: The Account Enhancement's name.
                              example: Sample Enhancement
                              type: string
                              items:
                                type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return all cPanel account's Account Enhancements
      tags:
        - Account Enhancements
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              AccountEnhancements \
              list
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/AccountEnhancements/list
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file AccountEnhancements_list.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/AccountEnhancements_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/AccountEnhancements/,
                q/list/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file AccountEnhancements_list.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/AccountEnhancements_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'AccountEnhancements',
                'list'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 98
  /Backup/fullbackup_to_ftp:
    get:
      description: "This function creates a full backup to the remote server via File Transfer Protocol (FTP). The system creates a file in the\_`backup-MM.DD.YYYY_HH-mm-ss.tar.gz`\_filename format."
      operationId: fullbackup_to_ftp
      parameters:
        - description: The remote server's hostname or IP address.
          in: query
          name: host
          required: true
          schema:
            example: example.com
            oneOf:
              - description: A valid hostname.
                format: hostname
                type: string
              - description: A valid IP address.
                format: ipv4
                type: string
            type: string
        - description: The remote server account's password.
          in: query
          name: password
          required: true
          schema:
            example: luggage123456
            type: string
        - description: The remote server account's username.
          in: query
          name: username
          required: true
          schema:
            example: username
            type: string
        - description: >-
            The directory on the remote server that will store the backup.


            **Note:**


            * This value defaults to the remote server account's default login
            directory.

            * Enter the directory relative to the FTP user's login directory.
            For example, enter `/public_ftp` not `/home/username/public_ftp`.
          in: query
          name: directory
          required: false
          schema:
            example: /public_ftp
            type: string
        - description: >-
            The email address to receive a confirmation email when the backup
            completes.


            **Note:**

             The system does **not** provide confirmation if you do **not** pass this parameter.
          in: query
          name: email
          required: false
          schema:
            default: null
            example: username@example.com
            format: email
            type: string
        - description: |-
            How to manage the home directory in the backup.

            * `include` — Include the home directory in the backup.
            * `skip` — Omit the home directory from the backup.
          in: query
          name: homedir
          required: false
          schema:
            default: include
            enum:
              - include
              - skip
            example: include
            type: string
        - description: The port number to use during the transfer.
          in: query
          name: port
          required: false
          schema:
            default: 21
            example: 21
            maximum: 65535
            minimum: 1
            type: integer
        - description: >-
            Whether to use the `active` or `passive` FTP variant to connect to

            the remote server. For more information about FTP variants, read our
            How

            to [Enable FTP Passive
            Mode](https://go.cpanel.net/HowtoEnableFTPPassiveMode)
            documentation.

            * `active` — The FTP server responds to the connection attempt and
            returns a connection request from a different port to the FTP
            client.

            * `passive` — The FTP client initiates connection attempts.
          in: query
          name: variant
          required: false
          schema:
            default: active
            enum:
              - active
              - passive
            example: active
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fullbackup_to_ftp
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          pid:
                            description: The backup's process identifier.
                            example: '2857'
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Back up cPanel account via FTP
      tags:
        - Backup
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Backup \
              fullbackup_to_ftp \
              username='username' \
              password='luggage123456' \
              host='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Backup/fullbackup_to_ftp?username=username&password=luggage123456&host=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Backup_fullbackup_to_ftp.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_ftp.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Backup/,
                q/fullbackup_to_ftp/,
                {
                    'username' => 'username',
                    'password' => 'luggage123456',
                    'host' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Backup_fullbackup_to_ftp.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_ftp.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Backup',
                'fullbackup_to_ftp',
                array (
                    'username' => 'username',
                    'password' => 'luggage123456',
                    'host' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Backup/fullbackup_to_homedir:
    get:
      description: "This function creates a full backup to the user's home directory. The system creates a file in the\_`backup-MM.DD.YYYY_HH-mm-ss_username.tar.gz`\_filename format."
      operationId: fullbackup_to_homedir
      parameters:
        - description: >-
            The email address to receive a confirmation email when the backup
            process completes.


            **Note:**


            The system does **not** provide confirmation if you do not pass this
            parameter.
          in: query
          name: email
          required: false
          schema:
            default: null
            example: username@example.com
            format: email
            type: string
        - description: |-
            How to manage the home directory in the backup.

            * `include` — Include the home directory in the backup.
            * `skip` — Omit the home directory from the backup.
          in: query
          name: homedir
          required: false
          schema:
            default: include
            enum:
              - include
              - skip
            example: include
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fullbackup_to_homedir
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          pid:
                            description: The backup's process identifier.
                            example: '2857'
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Back up cPanel account to home directory
      tags:
        - Backup
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Backup \
              fullbackup_to_homedir
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Backup/fullbackup_to_homedir
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Backup_fullbackup_to_homedir.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_homedir.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Backup/,
                q/fullbackup_to_homedir/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Backup_fullbackup_to_homedir.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_homedir.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Backup',
                'fullbackup_to_homedir'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Backup/fullbackup_to_scp_with_key:
    get:
      description: "This function creates a full backup to a remote server with a private SSH key via the secure copy protocol (scp) command. The system creates a file in the\_`backup-MM.DD.YYYY_HH-mm-ss_username.tar.gz`\_filename format."
      operationId: fullbackup_to_scp_with_key
      parameters:
        - description: The remote server's hostname or IP address.
          in: query
          name: host
          required: true
          schema:
            example: example.com
            oneOf:
              - description: A valid hostname.
                format: hostname
                type: string
              - description: A valid IP address.
                format: ipv4
                type: string
            type: string
        - description: |-
            The SSH key's name.

            **Notes:**

            * To generate a private SSH key, use the UAPI `SSL::generate_key`
            function.
            * To import an existing SSH key, use the cPanel API 2
            `SSH::importkey` function.
          in: query
          name: key_name
          required: true
          schema:
            example: examplesshkey
            type: string
        - description: The SSH key's password.
          in: query
          name: key_passphrase
          required: true
          schema:
            example: 123456luggage
            minLength: 4
            type: string
        - description: >-
            The directory on the remote server that will store the backup.


            **Note:**


            This parameter defaults to the remote server account's default login
            directory.
          in: query
          name: directory
          required: false
          schema:
            example: /user
            type: string
        - description: >-
            The email address to receive a confirmation email when the backup
            completes.


            **Note:**


            The system does **not** provide confirmation if you do not pass this
            parameter.
          in: query
          name: email
          required: false
          schema:
            default: null
            example: username@example.com
            format: email
            type: string
        - description: |-
            How to manage the home directory in the backup.

            * `include` — Include the home directory in the backup.
            * `skip` — Omit the home directory from the backup.
          in: query
          name: homedir
          required: false
          schema:
            default: include
            enum:
              - include
              - skip
            example: include
            type: string
        - description: The port to use during the transfer.
          in: query
          name: port
          required: false
          schema:
            default: 22
            example: 22
            maximum: 65335
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fullbackup_to_scp_with_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          pid:
                            description: The backup's process identifier.
                            example: '2857'
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Back up cPanel account via SCP with SSH key
      tags:
        - Backup
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Backup \
              fullbackup_to_scp_with_key \
              host='example.com' \
              key_name='examplesshkey' \
              key_passphrase='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Backup/fullbackup_to_scp_with_key?host=example.com&key_name=examplesshkey&key_passphrase=123456luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Backup_fullbackup_to_scp_with_key.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_scp_with_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Backup/,
                q/fullbackup_to_scp_with_key/,
                {
                    'host' => 'example.com',
                    'key_name' => 'examplesshkey',
                    'key_passphrase' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Backup_fullbackup_to_scp_with_key.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_scp_with_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Backup',
                'fullbackup_to_scp_with_key',
                array (
                    'host' => 'example.com',
                    'key_name' => 'examplesshkey',
                    'key_passphrase' => '123456luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Backup/fullbackup_to_scp_with_password:
    get:
      description: "This function creates a full backup to a remote server via the secure copy protocol (`scp`) command with a password. The system creates a file in the\_`backup-MM.DD.YYYY_HH-mm-ss.tar.gz`\_filename format."
      operationId: fullbackup_to_scp_with_password
      parameters:
        - description: The remote server's hostname or IP address.
          in: query
          name: host
          required: true
          schema:
            example: example.com
            oneOf:
              - description: A valid ipv4 address.
                format: ipv4
                type: string
              - description: A valid hostname.
                format: hostname
                type: string
            type: string
        - description: The remote server account's password.
          in: query
          name: password
          required: true
          schema:
            example: luggage123456
            type: string
        - description: The remote server account's username.
          in: query
          name: username
          required: true
          schema:
            example: username
            type: string
        - description: >-
            The directory on the remote server that will store the backup.


            **Note:**


            This parameter defaults to the remote server account's default login
            directory.
          in: query
          name: directory
          required: false
          schema:
            example: /user
            type: string
        - description: >-
            The email address to receive a confirmation email when the backup
            completes.


            **Note:**


            The system does **not** provide confirmation if you do **not** pass
            this parameter.
          in: query
          name: email
          required: false
          schema:
            default: null
            example: username@example.com
            format: email
            type: string
        - description: |-
            How to manage the home directory in the backup.

            * `include` — Include the home directory in the backup.
            * `skip` — Omit the home directory from the backup.
          in: query
          name: homedir
          required: false
          schema:
            default: include
            enum:
              - include
              - skip
            example: include
            type: string
        - description: The port to use during the transfer.
          in: query
          name: port
          required: false
          schema:
            default: 22
            example: 22
            maximum: 65335
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fullbackup_to_scp_with_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          pid:
                            description: The backup's process identifier.
                            example: '2857'
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Back up cPanel account via SCP with password
      tags:
        - Backup
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Backup \
              fullbackup_to_scp_with_password \
              host='example.com' \
              username='username' \
              password='luggage123456'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Backup/fullbackup_to_scp_with_password?host=example.com&username=username&password=luggage123456
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Backup_fullbackup_to_scp_with_password.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_scp_with_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Backup/,
                q/fullbackup_to_scp_with_password/,
                {
                    'host' => 'example.com',
                    'username' => 'username',
                    'password' => 'luggage123456',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Backup_fullbackup_to_scp_with_password.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Backup_fullbackup_to_scp_with_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Backup',
                'fullbackup_to_scp_with_password',
                array (
                    'host' => 'example.com',
                    'username' => 'username',
                    'password' => 'luggage123456',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Backup/list_backups:
    get:
      description: This function lists the account's backup files.
      operationId: list_backups
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_backups
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of the account's backup files.
                        items:
                          example: '2014-12-02T00:00:00.000Z'
                          format: ISO-8601 Date
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          cnt:
                            description: The number of backup files.
                            example: 1
                            type: integer
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return backup files
      tags:
        - Backup
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Backup \
              list_backups
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Backup/list_backups
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Backup_list_backups.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Backup_list_backups.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Backup/,
                q/list_backups/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Backup_list_backups.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Backup_list_backups.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Backup',
                'list_backups'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Backup/restore_databases:
    post:
      description: >-
        This function restores a database's backup files.


        **Important:**


        When the [MySQL Client
        role](https://go.cpanel.net/howtouseserverprofiles#roles) is disabled,
        the system also **disables** this function.


        **Note:**


        You **must** pass either the `file` **or** `backup` parameter.
      operationId: restore_databases
      parameters:
        - description: >-
            The database backup file to restore.


            **Important:**


            **Only** pass this parameter to restore files already on the server.


            **Note:**


            To restore multiple database backup files, increment the parameter
            name. For example: `backup-1`, `backup-2`, and `backup-3`.
          examples:
            multiple:
              summary: Restore multiple database backup files.
              value: >-
                backup-1=home/user/user_db1.sql.gz
                backup-2=home/user/user_db2.sql.gz
                backup-3=home/user/user_db3.sql.gz
            single:
              summary: Restore a single database backup file.
              value: home/user/user_db1.sql.gz
          in: query
          name: backup
          required: false
          schema:
            type: string
        - description: |-
            The maximum number of seconds to try to restore the file.
            * `0` - The system will not time out the file restoration.
          in: query
          name: timeout
          required: false
          schema:
            default: 7200
            example: 3600
            minimum: 0
            type: integer
        - description: "Whether to return additional information from the\_`/usr/local/cpanel/logs/cpbackup` log file.\n* `1` - Return additional information.\n* `0` - Do **not** return additional information."
          in: query
          name: verbose
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  format: binary
                  type: string
              type: object
        description: >-
          The database backup file to upload and restore.


          **Important:**


          * **Only** pass this parameter to upload files that don't already
          exist on the server.

          * You can **not** pass this parameter on the command line.


          **Note:**


          * To upload multiple database backup files, increment the parameter
          name. For example: `file-1`, `file-2`, and `file-3`.

          * Pass this file in a multipart/form-data structure.

          * For more information about this structure, read Mozilla's [POST
          Method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)
          documentation.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: restore_databases
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          log_id:
                            description: >-
                              The log file's restoration identification (ID).
                              The system uses the backup restoration's date to
                              create this ID. The ID is in [ISO-8601 Date
                              Time](https://en.wikipedia.org/wiki/ISO_8601)
                              format with the log's revision number appended.
                            example: 2019-08-13T15:10:07Z.1
                            type: string
                          log_path:
                            description: The filepath to the backup restoration's log file.
                            example: >-
                              /home/cptest/logs/restoredb/2019-08-13T15:10:07Z.1.log
                            format: path
                            type: string
                          messages:
                            description: >-
                              An array of statements about the database's
                              restoration.
                            items:
                              example: >-
                                The system successfully restored the database
                                'user_db1' from the backup file
                                'user_db1.sql.gz'
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Restore databases
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --input=json --output=jsonpretty \
              --user=username \
              Backup \
              restore_databases
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: |+
            POST /cpsess##########/execute/Backup/restore_databases HTTP/1.1
            Host: example.com:2083
            Cookie: ###################################
            Content-Type: application/json
            Content-Length: 0

      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Backup/restore_email_filters:
    post:
      description: >-
        This function restores an account's email filters.


        **Important:**


        When the [Receive Mail
        role](https://go.cpanel.net/howtouseserverprofiles#roles) is disabled,
        the system also **disables** this function.


        **Note:**


        You **must** use the `backup` parameter when you call this function in
        one of the following formats:

        * As part of a `multipart/form-data` request body to upload and restore
        a backup file to the server.

        * As a query parameter to restore an existing file on the server.
      operationId: restore_email_filters
      parameters:
        - description: "The email filter file to restore.\n\n**Important:**\n\n**Only** pass this parameter to restore email filter files that already exist on the server.\n\n**Note:**\n\nTo restore multiple email filter files,\_increment the parameter name. For example:\_`backup-1`,\_`backup-2`,\_and `backup-3`."
          examples:
            multiple:
              summary: Restore multiple email filter files.
              value: >-
                backup-1=/home/user/filter_info1.username.yaml.gz
                backup-2=/home/user/filter_info2.username.yaml.gz
                backup-3=/home/user/filter_info3.username.yaml.gz
            single:
              summary: Restore a single email filter file.
              value: /home/user/filter_info.username.yaml.gz
          in: query
          name: backup
          required: false
          schema:
            type: string
        - description: |-
            The maximum number of seconds to try to restore the file.
            * `0` - The system will not time out the file restoration.
          in: query
          name: timeout
          required: false
          schema:
            default: 7200
            example: 3600
            minimum: 0
            type: integer
        - description: "Whether to return additional information from the\_`/home/cpuser/.cpanel/logs/restore-email-filters`\_log files.\n* `1` - Return additional information.\n* `0` - Do not return additional information."
          in: query
          name: verbose
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                backup:
                  format: binary
                  type: string
              type: object
        description: "The email filter file to upload and restore.\n\n**Important:**\n\n* **Only** pass this parameter to upload files that don't already exist on the server.\n* You can't pass this parameter on the command line.\n\n**Note:**\n\n* To upload multiple email filter files,\_increment the parameter name. For example:\_`backup-1`,\_`backup-2`,\_and `backup-3`.\n* Pass this file in a multipart/form-data structure.\n* For more information about this structure, read Mozilla's [POST Method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) documentation."
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: restore_email_filters
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          log_id:
                            description: >-
                              The log file's restoration identification (ID).
                              The system uses the backup restoration's date to
                              create this ID. The ID is in [ISO-8601 Date
                              Time](https://en.wikipedia.org/wiki/ISO_8601)
                              format with the log's revision number appended.
                            example: 2019-08-13T15:10:07Z.1
                            type: string
                          log_path:
                            description: The filepath to the backup restoration's log file.
                            example: >-
                              /home/cpuser/.cpanel/logs/restore-email-filters/2019-09-11T18:30:49Z.1.log
                            format: path
                            type: string
                          messages:
                            description: >-
                              An array of statements about the database's
                              restoration.
                            items:
                              example: >-
                                The system successfully restored the email
                                filters from the 'filter-info.user.yaml.gz'
                                backup.
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Restore email filters
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --input=json --output=jsonpretty \
              --user=username \
              Backup \
              restore_email_filters
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: |+
            POST /cpsess##########/execute/Backup/restore_email_filters HTTP/1.1
            Host: example.com:2083
            Cookie: ###################################
            Content-Type: application/json
            Content-Length: 0

      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /Backup/restore_email_forwarders:
    post:
      description: >-
        This function restores an account's email forwarders.


        **Important:**


        When the [Receive Mail
        role](https://go.cpanel.net/howtouseserverprofiles#roles) is disabled,
        the system also **disables** this function.


        **Note:**


        You **must** use the `backup` parameter when you call this function in
        one of the following formats:

        * As part of a `multipart/form-data` request body to upload and restore
        a backup file to the server. For more information about this structure,
        read Mozilla's [POST
        Method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)
        documentation.

        * As a query parameter to restore an existing file on the server.
      operationId: restore_email_forwarders
      parameters:
        - description: "The email forwarder file to restore.\n\n**Important:**\n\n**Only** pass this parameter to restore email forwarder files that already exist on the server.\n\n**Note:**\n\nTo restore multiple email filter files,\_increment the parameter name. For example:\_`backup-1`,\_`backup-2`,\_and `backup-3`."
          examples:
            multiple:
              summary: Restore multiple email forwarder files.
              value: >-
                backup-1=/home/user/aliases-example1.com.gz
                backup-2=/home/user/aliases-example2.com.gz
                backup-3=/home/user/aliases-example3.com.gz
            single:
              summary: Restore a single email forwarder file.
              value: /home/user/aliases-example.com.gz
          in: query
          name: backup
          required: false
          schema:
            type: string
        - description: |-
            The maximum number of seconds to try to restore the file.
            * `0` - The system will not time out the file restoration.
          in: query
          name: timeout
          required: false
          schema:
            default: 7200
            example: 3600
            minimum: 0
            type: integer
        - description: "Whether to return additional information from the\_`/home/cpuser/.cpanel/logs/restore-email-forwarders`\_log files.\n* `1` - Return additional information.\n* `0` - Do not return additional information."
          in: query
          name: verbose
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                backup:
                  format: binary
                  type: string
              type: object
        description: "The email forwarder file to upload and restore.\n\n**Important:**\n\n* **Only** pass this parameter to upload files that don't already exist on the server.\n* You can't pass this parameter on the command line.\n\n**Note:**\n\nTo upload multiple email filter files,\_increment the parameter name. For example:\_`backup-1`,\_`backup-2`,\_and `backup-3`."
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: restore_email_forwarders
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          log_id:
                            description: >-
                              The log file's restoration identification (ID).
                              The system uses the backup restoration's date to
                              create this ID. The ID is in [ISO-8601 Date
                              Time](https://en.wikipedia.org/wiki/ISO_8601)
                              format with the log's revision number appended.
                            example: 2019-08-13T15:10:07Z.1
                            type: string
                          log_path:
                            description: The filepath to the backup restoration's log file.
                            example: >-
                              /home/cpuser/.cpanel/logs/restore-email-forwarders/2019-09-11T18:30:49Z.1.log
                            format: path
                            type: string
                          messages:
                            description: >-
                              An array of statements about the database's
                              restoration.
                            items:
                              example: >-
                                The system successfully restored the email
                                forwarders from the 'aliases-example.com.gz'
                                backup.
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Restore email forwarders
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --input=json --output=jsonpretty \
              --user=username \
              Backup \
              restore_email_forwarders
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: >+
            POST /cpsess##########/execute/Backup/restore_email_forwarders
            HTTP/1.1

            Host: example.com:2083

            Cookie: ###################################

            Content-Type: application/json

            Content-Length: 0

      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /Backup/restore_files:
    post:
      description: >-
        This function restores an account's files.


        **Important:**


        When the [File Storage
        role](https://go.cpanel.net/howtouseserverprofiles#roles) is disabled,
        the system also **disables** this function.


        **Note:**


        You **must** use the `backup` parameter when you call this function in
        one of the following formats:

        * As part of a `multipart/form-data` request body to upload and restore
        a backup file to the server. For more information about this structure,
        read Mozilla's [POST
        Method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)
        documentation.

        * As a query parameter to restore an existing file on the server.
      operationId: restore_files
      parameters:
        - description: "The backup file to restore.\n\n**Important:**\n\n**Only** pass this parameter to restore backup files that already exist on the server.\n\n**Note:**\n\nTo restore multiple backup files,\_increment the parameter name. For example: `backup-1`,\_`backup-2`,\_and `backup-3`."
          examples:
            multiple:
              summary: Restore multiple backup files.
              value: >-
                backup-1=/home/cpuser/backup-cpuser.tld-9-10-2019_1.tar.gz
                backup-2=/home/cpuser/backup-cpuser.tld-9-10-2019_2.tar.gz
            single:
              summary: Restore a single backup file.
              value: /home/cpuser/backup-cpuser.tld-9-10-2019_1.tar.gz
          in: query
          name: backup
          required: false
          schema:
            type: string
        - description: >-
            The directory to which to restore the file. The default is the
            user's `home` directory.
          in: query
          name: directory
          required: false
          schema:
            example: /home/user/example
            format: path
            type: string
        - description: |-
            The maximum number of seconds to try to restore the file.
            * `0` - The system will not time out the file restoration.
          in: query
          name: timeout
          required: false
          schema:
            default: 172800
            example: 7200
            minimum: 0
            type: integer
        - description: "Whether to return additional information from the\_`/home/cptest/.cpanel/logs/restorefiles` log files.\n* `1` - Return additional information.\n* `0` - Do not return additional information."
          in: query
          name: verbose
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                backup:
                  format: binary
                  type: string
              type: object
        description: "The backup file to upload and restore.\n\n**Important:**\n\n* **Only** pass this parameter to upload files that don't already exist on the server.\n* You can't pass this parameter on the command line.\n\n**Note:**\n\nTo upload and restore multiple backup files,\_increment the parameter name. For example: `backup-1`,\_`backup-2`,\_and `backup-3`."
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: restore_files
                    type: string
                  module:
                    description: The name of the module called.
                    example: Backup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          log_id:
                            description: >-
                              The log file's restoration identification (ID).
                              The system uses the backup restoration's date to
                              create this ID. The ID is in [ISO-8601 Date
                              Time](https://en.wikipedia.org/wiki/ISO_8601)
                              format with the log's revision number appended.
                            example: 2019-08-13T15:10:07Z.1
                            type: string
                          log_path:
                            description: The filepath to the backup restoration's log file.
                            example: >-
                              /home/cptest/.cpanel/logs/restorefiles/2019-08-13T15:10:07Z.1.log
                            format: path
                            type: string
                          messages:
                            description: >-
                              An array of statements about the database's
                              restoration.
                            items:
                              example: >-
                                The system successfully restored the directory
                                /home/cpuser/point2 from the backup file
                                backup-cpuser.tld-9-10-2019_1.tar.gz
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Restore files
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --input=json --output=jsonpretty \
              --user=username \
              Backup \
              restore_files
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: |+
            POST /cpsess##########/execute/Backup/restore_files HTTP/1.1
            Host: example.com:2083
            Cookie: ###################################
            Content-Type: application/json
            Content-Length: 0

      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /Bandwidth/get_enabled_protocols:
    get:
      description: This function returns a list of the server's enabled protocols.
      operationId: get_enabled_protocols
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_enabled_protocols
                    type: string
                  module:
                    description: The name of the module called.
                    example: Bandwidth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The bandwidth protocols that the server records.

                          * `ftp`

                          * `imap`

                          * `pop3`

                          * `smtp`

                          * `http` — This value includes all web traffic for the
                          80 and 443 ports.
                        items:
                          enum:
                            - ftp
                            - http
                            - imap
                            - pop3
                            - smtp
                          example: imap
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return services monitored in bandwidth data
      tags:
        - Bandwidth
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Bandwidth \
              get_enabled_protocols
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Bandwidth/get_enabled_protocols
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Bandwidth_get_enabled_protocols.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Bandwidth_get_enabled_protocols.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Bandwidth/,
                q/get_enabled_protocols/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Bandwidth_get_enabled_protocols.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Bandwidth_get_enabled_protocols.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Bandwidth',
                'get_enabled_protocols'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 76
  /Bandwidth/get_retention_periods:
    get:
      description: This function retrieves the retention periods for bandwidth data.
      operationId: get_retention_periods
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_retention_periods
                    type: string
                  module:
                    description: The name of the module called.
                    example: Bandwidth
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            interval:
                              description: >-
                                The interval in which the system reports
                                bandwidth data.

                                - `daily`

                                - `hourly`

                                - `5min`
                              enum:
                                - daily
                                - hourly
                                - 5min
                              example: 5min
                              type: string
                            retention:
                              description: The retention period for bandwidth data.
                              example: 2678400
                              format: unix_timestamp
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return bandwidth retention period
      tags:
        - Bandwidth
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Bandwidth \
              get_retention_periods
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Bandwidth/get_retention_periods
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Bandwidth_get_retention_periods.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Bandwidth_get_retention_periods.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Bandwidth/,
                q/get_retention_periods/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Bandwidth_get_retention_periods.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Bandwidth_get_retention_periods.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Bandwidth',
                'get_retention_periods'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Bandwidth/query:
    get:
      description: >-
        This function queries an account's bandwidth data and returns a report.


        **Note:**


        This function also returns the bandwidth use of a [distributed cPanel
        account](https://go.cpanel.net/cPanelGlossary#distributed-cpanel-account).
      operationId: query
      parameters:
        - description: >-
            How to group the data in the report, in pipe-separated format. This
            list **must** contain one or both of the following parameters:


            A pipe-separated list that contains one or both of the following
            parameters:

            * `domain`

            * `protocol`


            This parameter can also include only **one** of the following start
            time interval types:

            * `year`

            * `year_month`

            * `year_month_day`

            * `year_month_day_hour`

            * `year_month_day_mour_minute`


            **Note:**


            * This parameter accepts a maximum of three values.

            * The function nests the return objects in the order that you
            declare the values in this parameter.
          examples:
            domain_protocol_year:
              summary: domain|protocol|year
              value: grouping=domain|protocol|year
            domain_year:
              summary: domain|year
              value: grouping=domain|year
            protocol_year_month:
              summary: protocol|year_month
              value: grouping=protocol|year_month
            year_month_day:
              summary: year_month_day
              value: grouping=year_month_day
          explode: false
          in: query
          name: grouping
          required: true
          schema:
            anyOf:
              - enum:
                  - domain
                  - protocol
                type: string
              - enum:
                  - year
                  - year_month
                  - year_month_day
                  - year_month_day_hour
                  - year_month_day_hour_minute
                type: string
          style: pipeDelimited
        - description: >-
            A pipe-separated list of domains for which to provided data.


            **Note:**


            * If you do not include this parameter, the function will return
            data for all domains on the cPanel account.

            * The `UNKNOWN` "pseudo-domain" refers to data recorded without a
            specific domain. All traffic except HTTP traffic

            is recorded without a specific domain.
          examples:
            multiple:
              summary: Get data for multiple domains and UNKNOWN.
              value: >-
                domains=example.com|subdomain.example.com|subdomain2.example.com|parkedexample.com|UNKNOWN
            single:
              summary: Get data for a specific domain.
              value: example.com
          explode: false
          in: query
          name: domains
          required: false
          schema:
            format: domain
            type: string
          style: pipeDelimited
        - description: The end date of the report window.
          in: query
          name: end
          required: false
          schema:
            example: 1446664809
            format: unix_timestamp
            type: integer
        - description: >-
            Length of time between bandwidth data samples.


            * `daily`

            * `hourly`

            * `5min`


            **Note:**


            The interval's retention period determines availability of the
            interval's data.

            Use the `Bandwidth::get_retention_periods` API to determine an
            interval's retention period.
          in: query
          name: interval
          required: false
          schema:
            default: daily
            enum:
              - daily
              - hourly
              - 5min
            example: daily
            type: string
        - description: |-
            A pipe-separated list of the protocols for which to provide data.
            * `http`
            * `imap`
            * `smtp`
            * `pop3`
            * `ftp`
          examples:
            multiple:
              summary: Get data for multiple protocols.
              value: protocols=http|imap|smtp|pop3|ftp
            single:
              summary: Get data for a specific protocol.
              value: http
          explode: false
          in: query
          name: protocols
          required: false
          schema:
            type: string
          style: pipeDelimited
        - description: The start date of the report window.
          in: query
          name: start
          required: false
          schema:
            example: 1445664609
            format: unix_timestamp
            type: integer
        - description: The timezone in which to report the data.
          in: query
          name: timezone
          required: false
          schema:
            example: America/Chicago
            format: olson_timezone_name
            type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                domain:
                  description: grouping=domain
                  value:
                    data:
                      UNKNOWN: 70447164
                      example.com: 815258916235
                      parkedexample.com: 18861122614
                      subdomain.example.com: 11407
                      subdomain2.example.com: 683533
                    errors: null
                    messages: null
                    metadata: {}
                    status: 1
                domain_protocol_year:
                  description: grouping=domain|protocol|year
                  value:
                    data:
                      UNKNOWN:
                        imap:
                          '1325376000': 11036.0461226852
                          '1356998400': 14892
                          '1388534400': 5148
                          '1420070400': 39745
                        smtp:
                          '1325376000': 155605
                          '1356998400': 2525944.05255787
                          '1388534400': 37310742
                          '1420070400': 30384052
                      example.com:
                        http:
                          '1325376000': 11700672006
                          '1356998400': 252262219725
                          '1388534400': 330435334428
                          '1420070400': 220860690076
                      parkedexample.com:
                        http:
                          '1356998400': 1214392
                          '1420070400': 18859908222
                      subdomain.example.com:
                        http:
                          '1388534400': 10227
                          '1420070400': 1180
                      subdomain2.example.com:
                        http:
                          '1420070400': 683533
                    errors: null
                    messages: null
                    metadata: {}
                    status: 1
                domain_year:
                  description: grouping=domain|year
                  value:
                    data:
                      UNKNOWN:
                        '1325376000': 141799
                        '1356998400': 52558
                        '1388534400': 56450
                        '1420070400': 3737236
                      example.com:
                        '1325376000': 27496678808
                        '1356998400': 16961550301
                        '1388534400': 17664354048
                        '1420070400': 26169989838
                      parkedexample.com:
                        '1325376000': 2474092283
                        '1356998400': 1214392
                        '1388534400': 1514221571
                        '1420070400': 14871594368
                      subdomain.example.com:
                        '1356998400': 1180
                        '1388534400': 5708
                        '1420070400': 4519
                      subdomain2.example.com:
                        '1420070400': 683533
                    errors: null
                    messages: null
                    metadata: {}
                    status: 1
                year_domain:
                  description: grouping=year|domain
                  value:
                    data:
                      '1325376000':
                        UNKNOWN: 70447164
                        example.com: 815258916235
                        parkedexample.com: 18861122614
                        subdomain.example.com: 11407
                        subdomain2.example.com: 683533
                      '1356998400':
                        UNKNOWN: 70447164
                        example.com: 815258916235
                        parkedexample.com: 18861122614
                        subdomain.example.com: 11407
                        subdomain2.example.com: 683533
                      '1388534400':
                        UNKNOWN: 70447164
                        example.com: 815258916235
                        parkedexample.com: 18861122614
                        subdomain.example.com: 11407
                        subdomain2.example.com: 683533
                      '1420070400':
                        UNKNOWN: 70447164
                        example.com: 815258916235
                        parkedexample.com: 18861122614
                        subdomain.example.com: 11407
                        subdomain2.example.com: 683533
                    errors: null
                    messages: null
                    metadata: {}
                    status: 1
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: query
                    type: string
                  module:
                    description: The name of the module called.
                    example: Bandwidth
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          additionalProperties:
                            additionalProperties:
                              description: >-
                                This object's keys are the values of the third
                                grouping parameter.
                              nullable: true
                              type: object
                              x-additionalPropertiesName: grouping-param-value-3
                            description: >-
                              This object's keys are the values of the second
                              grouping parameter.
                            nullable: true
                            type: object
                            x-additionalPropertiesName: grouping-param-value-2
                          description: >-
                            This object's keys are the values of the first
                            grouping parameter.
                          type: object
                          x-additionalPropertiesName: grouping-param-value-1
                        description: >
                          The function returns data in a hierarchy of objects
                          that the order of values in the `grouping` parameter
                          determines.


                          For example:


                          * `domain` - Returns data by domain.

                          * `domain|protocol` - Returns data by protocol and
                          nests it within the object for each domain.

                          * `domain|year` - Returns data by year and nests it
                          within the object for each domain.

                          * `year|domain` - Returns data by domain and nests it
                          within object for each year.

                          * `domain|year|protocol` - Returns data by protocol
                          and nests it within object for each year, which the
                          result then nests in objects for each domain.


                          The deepest child object contains the bandwidth data
                          in bytes.
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        additionalProperties:
                          nullable: true
                          type: object
                        description: >-
                          An object containing any additional data returned by
                          the API.
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's bandwidth usage report
      tags:
        - Bandwidth
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Bandwidth \
              query \
              grouping='domain|protocol|year'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Bandwidth/query?grouping=grouping%3ddomain%7cprotocol%7cyear
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Bandwidth_query.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Bandwidth_query.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Bandwidth/,
                q/query/,
                {
                    'grouping' => 'grouping=domain|protocol|year',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Bandwidth_query.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Bandwidth_query.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Bandwidth',
                'query',
                array (
                    'grouping' => 'grouping=domain|protocol|year',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Batch/strict:
    get:
      description: >-
        This function combines calls for multiple UAPI functions and performs
        them in order.


        **Note:**


        * If a function call in the list fails, the `Batch::strict` function
        does not run further function calls in the list.

        * Due to the potential length of calls of this function, we recommend
        that you use the HTTP POST method for extremely long batch commands.
      operationId: strict
      parameters:
        - content:
            application/json:
              examples:
                multiple:
                  summary: Call multiple UAPI functions.
                  value:
                    - >-
                      command=["PasswdStrength","get_required_strength",{"app":"webdisk"}]
                    - command=["SSH","get_port"]
                multiple_indexed:
                  summary: Call multiple UAPI functions using indexed parameters.
                  value:
                    - >-
                      command-0=["PasswdStrength","get_required_strength",{"app":"webdisk"}]
                    - command-1=["SSH","get_port"]
              schema:
                items:
                  oneOf:
                    - type: string
                    - additionalProperties: true
                      type: object
                maxItems: 3
                minItems: 2
                type: array
          description: "A UAPI function call, encoded as a JSON array with two or three items:\n\n* The UAPI module.\n* The UAPI function.\n* A JSON object containing the parameters to pass to this function. You can omit this value if you do not pass any parameters to the function.\n\nTo submit multiple commands, duplicate the parameter name, or index all parameter names and increment the index for each one.\n\n* When using the cPanel LiveAPI PHP Library, you **must** increment the parameter name when you submit the arguments in an associative array. For example:\_use `command-0`,\_`command-1`,\_and `command-2`.\n* When using the cPanel LiveAPI Perl Library, you **must** increment the parameter name when you submit the arguments in a hash. For example:\_use `command-0`,\_`command-1`,\_and `command-2`.\n* You do **not** need to add an index to `command` parameters for query string calls of this function."
          in: query
          name: command
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: strict
                    type: string
                  module:
                    description: The name of the module called.
                    example: Batch
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contain function output. Each
                          object contains the output data and metadata from one
                          of the `command` parameter's functions.


                          For more information about UAPI return data and
                          metadata, read our [UAPI - Return
                          Data](https://go.cpanel.net/UAPIReturnData)
                          documentation.
                        example:
                          - data:
                              strength: 65
                            errors: null
                            messages: null
                            metadata: {}
                            status: 1
                            warnings: null
                          - data:
                              port: 22
                            errors: null
                            messages: null
                            metadata: {}
                            status: 1
                            warnings: null
                        items:
                          properties:
                            data:
                              additionalProperties: true
                              description: >-
                                The data returned by an individual UAPI call
                                invoked through this `Batch::strict` call.
                              type: object
                            errors:
                              description: List of errors if the API failed.
                              example: null
                              items:
                                type: string
                              nullable: true
                              type: array
                            messages:
                              description: List of messages generated by the API.
                              example: null
                              items:
                                type: string
                              nullable: true
                              type: array
                            metadata:
                              properties:
                                transformed:
                                  description: >-
                                    Post-processing may have transformed the
                                    data.
                                  enum:
                                    - 1
                                  example: 1
                                  type: integer
                            status:
                              description: >-
                                - 1 - Success

                                - 0 - Failed: Check the errors field for more
                                details.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            warnings:
                              description: >-
                                List of warnings generated by the API. Warnings
                                describe non-critical failures or other
                                problematic conditions noted while running an
                                API.
                              example: null
                              items:
                                type: string
                              nullable: true
                              type: array
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Run multiple UAPI functions in order
      tags:
        - Batch
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username Batch strict command-0='[
            "PasswdStrength", "get_required_strength", { "app": "webdisk"} ]'
            command-1='["SSH","get_port"]'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Batch/strict?command-0=%5b%20%22PasswdStrength%22%2c%20%22get_required_strength%22%2c%20%7b%20%22app%22%3a%20%22webdisk%22%7d%20%5d&command-1=%5B%22SSH%22%2C%22get_port%22%5D
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Batch_strict.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Batch_strict.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Batch/,
                q/strict/,
                {
                    'command-0' => '[ "PasswdStrength", "get_required_strength", { "app": "webdisk"} ]',
                    'command-1' => '["SSH","get_port"]',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Batch_strict.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Batch_strict.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Batch',
                'strict',
                array (
                    'command-0' => '[ "PasswdStrength", "get_required_strength", { "app": "webdisk"} ]',
                    'command-1' => '["SSH","get_port"]',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /BlockIP/add_ip:
    get:
      description: >-
        This function blocks IP addresses from accessing the domains on a cPanel
        account.


        **Important**


        When you disable the Web Server role, the system disables this function.
      operationId: blockip-add-ip
      parameters:
        - description: The IP address or IP address range that you wish to block.
          examples:
            cidr-ipv4:
              summary: CIDR Format IPv4
              value: 192.168.0.1/16
            cidr-ipv6:
              summary: CIDR Format IPv6
              value: 2001:db8::/32
            hostname:
              summary: Add by resolving hostname
              value: example.com
            implied-range:
              summary: Implied Range
              value: 192.168.0.1-58
            ipv4-range:
              summary: IPv4 Range
              value: 192.168.0.1-192.168.0.58
            ipv6-range:
              summary: IPv6 Range
              value: 2001:db8::1-2001:db8::3
            single-ipv4:
              summary: Single IPv4 Address
              value: 192.0.2.0
            single-ipv6:
              summary: Single IPv6 Address
              value: 2001:db8::1
            subnet-octet:
              summary: Subnet Range - Matches 10.*.*.*
              value: '10.'
          in: query
          name: ip
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_ip
                    type: string
                  module:
                    description: The name of the module called.
                    example: BlockIP
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          IP addresses that were added, as translated by the
                          system.
                        items:
                          example: 1.1.1.1
                          type: string
                        nullable: true
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add IP address to cPanel account's block list
      tags:
        - BlockIP
        - Block IP
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BlockIP \
              add_ip \
              ip='192.168.0.1/16'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BlockIP/add_ip?ip=192.168.0.1%2f16
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BlockIP_add_ip.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BlockIP_add_ip.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BlockIP/,
                q/add_ip/,
                {
                    'ip' => '192.168.0.1/16',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BlockIP_add_ip.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BlockIP_add_ip.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BlockIP',
                'add_ip',
                array (
                    'ip' => '192.168.0.1/16',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /BlockIP/remove_ip:
    get:
      description: >-
        This function unblocks IP addresses from accessing domains on a cPanel
        account.


        **Important**


        When you disable the Web Server role, the system disables this function.
      operationId: blockip-remove-ip
      parameters:
        - description: The IP address or IP address range that you wish to unblock.
          examples:
            cidr-ipv4:
              summary: CIDR Format IPv4
              value: 192.168.0.1/16
            cidr-ipv6:
              summary: CIDR Format IPv6
              value: 2001:db8::/32
            hostname:
              summary: Add by resolving hostname
              value: example.com
            implied-range:
              summary: Implied Range
              value: 192.168.0.1-58
            ipv4-range:
              summary: IPv4 Range
              value: 192.168.0.1-192.168.0.58
            ipv6-range:
              summary: IPv6 Range
              value: 2001:db8::1-2001:db8::3
            single-ipv4:
              summary: Single IPv4 Address
              value: 192.0.2.0
            single-ipv6:
              summary: Single IPv6 Address
              value: 2001:db8::1
            subnet-octet:
              summary: Subnet Range - Matches 10.*.*.*
              value: '10.'
          in: query
          name: ip
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_ip
                    type: string
                  module:
                    description: The name of the module called.
                    example: BlockIP
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The IP addresses that the function removed, and the
                          system translated.
                        items:
                          example: 1.1.1.1
                          type: string
                        nullable: true
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove IP address from cPanel account's block list
      tags:
        - BlockIP
        - Block IP
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BlockIP \
              remove_ip \
              ip='192.168.0.1/16'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BlockIP/remove_ip?ip=192.168.0.1%2f16
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BlockIP_remove_ip.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BlockIP_remove_ip.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BlockIP/,
                q/remove_ip/,
                {
                    'ip' => '192.168.0.1/16',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BlockIP_remove_ip.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BlockIP_remove_ip.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BlockIP',
                'remove_ip',
                array (
                    'ip' => '192.168.0.1/16',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /BoxTrapper/blacklist_messages:
    get:
      description: |-
        This function blacklists email message senders.

        **Important:**

          When you disable the [Receive Mail](https://go.cpanel.net/serverroles) role, the system disables this function.
      operationId: blacklist_messages
      parameters:
        - description: >-
            The email address for which to blacklist messages.


            **Warning:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently-authenticated user.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: The filename of the email message to blacklist.
          examples:
            multiple:
              summary: Blacklist multiple filenames.
              value: queuefile=file1&queuefile=file2
            single:
              summary: Blacklist one filename.
              value: file1
          in: query
          name: queuefile
          required: true
          schema:
            example: example.msg
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: blacklist_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects of blacklisted email information.
                        items:
                          properties:
                            email:
                              description: >-
                                The email address that sent the blacklisted
                                message.
                              example: user@example.com
                              format: email
                              type: string
                            failed:
                              description: >-
                                Whether the system failed to blacklist the
                                message.


                                **Note:**

                                 The function only returns this value if it doesn't blacklist the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                            matches:
                              description: An array of messages that the system deleted.
                              items:
                                example: example.msg
                                type: string
                              type: array
                            operator:
                              description: The action that the function performed.
                              enum:
                                - blacklist
                              example: blacklist
                              type: string
                            reason:
                              description: |-
                                A message about the failure or the warning.

                                **Note:**

                                 The function only returns this value if it doesn't delete the message or experiences issues when it deletes the message.
                              example: This is a failure message.
                              type: string
                            warning:
                              description: >-
                                Whether the system experienced issues when it
                                blacklisted the message.


                                **Note:**

                                 The function only returns this value if it doesn't blacklist the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add email address to BoxTrapper blocked senders
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              blacklist_messages \
              email='user@example.com' \
              queuefile='file1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/blacklist_messages?email=user%40example.com&queuefile=file1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_blacklist_messages.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_blacklist_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/blacklist_messages/,
                {
                    'email' => 'user@example.com',
                    'queuefile' => 'file1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_blacklist_messages.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_blacklist_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'blacklist_messages',
                array (
                    'email' => 'user@example.com',
                    'queuefile' => 'file1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/delete_messages:
    get:
      description: >-
        This function deletes messages in the BoxTrapper queue.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system disables this function.
      operationId: delete_messages
      parameters:
        - description: >-
            The account's email address.


            **Warning:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently-authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: |-
            The filename of the email message who's sender to delete.

              **Warning:**

             To delete multiple email message senders, duplicate the parameter name.
          examples:
            multiple:
              summary: Delete multiple filenames.
              value: queuefile=file1.msg&queuefile=file2.msg
            single:
              summary: Delete a single filename.
              value: file1.msg
          in: query
          name: queuefile
          required: true
          schema:
            example: example.msg
            type: string
        - description: >-
            Whether to delete all messages that resemble the `queuefile`
            parameter's value.


            * `1` - Delete all messages resembling the `queuefile` parameter.

            * `0` - Do **not** delete all messages resembling the `queuefile`
            parameter.
          in: query
          name: all_like
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contain information about the
                          messages that matched the requested pattern.
                        items:
                          properties:
                            email:
                              description: The deleted email message's sender.
                              example: user@example.com
                              format: email
                              type: string
                            failed:
                              description: >-
                                Whether the system failed to delete the
                                messages.


                                **Note:**


                                The function only returns this value if it
                                doesn't delete the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                            matches:
                              description: An array of messages that the system deleted.
                              items:
                                example: example.msg
                                type: string
                              type: array
                            operator:
                              description: The operation that the system performed.
                              enum:
                                - delete
                              example: delete
                              type: string
                            reason:
                              description: >-
                                A message about the failure or the warning.


                                **Note:**


                                The function only returns this value if it
                                doesn't delete the message or experiences issues
                                when it deletes the message.
                              example: >-
                                (XID d9myfd) The system failed to locate the
                                requested message:
                              type: string
                            warning:
                              description: >-
                                Whether the system experienced issues when it
                                deleted the message.


                                **Note:**


                                The function only returns this value if it
                                experiences issues when it deletes the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete messages in the BoxTrapper queue
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              delete_messages \
              email='user@example.com' \
              queuefile='file1.msg'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/delete_messages?email=user%40example.com&queuefile=file1.msg
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_delete_messages.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_delete_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/delete_messages/,
                {
                    'email' => 'user@example.com',
                    'queuefile' => 'file1.msg',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_delete_messages.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_delete_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'delete_messages',
                array (
                    'email' => 'user@example.com',
                    'queuefile' => 'file1.msg',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/deliver_messages:
    get:
      description: >-
        This function delivers messages in the BoxTrapper queue.


        **Important:**


        When you disable the

        [*Receive Mail*
        role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles),

        the system **disables** this function.
      operationId: deliver_messages
      parameters:
        - description: >-
            The sender's cPanel account email address for which to deliver email
            messages.


            **Warning:**


            If you call this function in Webmail, the system ignores this
            parameter

            and defaults to the currently-authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: >-
            The filename of the email messages to deliver.


            **Note:**


            To deliver multiple email messages, pass this parameter multiple
            times.
          examples:
            multiple:
              summary: Deliver multiple email messages.
              value: >-
                queuefile=example.msg&queuefile=example1.msg&queuefile=example2.msg
            single:
              summary: Deliver a single email message.
              value: example.msg
          in: query
          name: queuefile
          required: true
          schema:
            type: string
        - description: >-
            Whether to deliver all messages that resemble the `queuefile`
            parameter's value.


            * `1` - Deliver all similar messages.

            * `0` - Don't deliver all similar messages.
          in: query
          name: all_like
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: deliver_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: The delivered email message information.
                        items:
                          properties:
                            email:
                              description: The delivered email message's sender.
                              example: user@example.com
                              format: email
                              type: string
                            failed:
                              description: >-
                                Whether the system could not deliver the
                                message.


                                **Note:**

                                 * The function only returns this value if it doesn't deliver the message.
                                 * `1` is the only possible value.
                              enum:
                                - 1
                              example: 1
                              type: integer
                            matches:
                              description: A list of delivered email messages.
                              items:
                                example: example.msg
                                type: string
                              type: array
                            operator:
                              description: |-
                                The action that the function performed.

                                * `deliver`
                                * `deliverall`
                              enum:
                                - deliver
                                - deliverall
                              example: deliverall
                              type: string
                            reason:
                              description: >-
                                A message about the failure or the warning.


                                **Note:**


                                The function only returns this value if it
                                doesn't delete the message or experiences

                                issues when it deletes the message.
                              example: This is a failure message.
                              type: string
                            warning:
                              description: >-
                                Whether the system experienced issues when it
                                delivered the message.


                                **Note:**

                                 * The function only returns this value if it experiences issues when it delivers the message.
                                 * `1` is the only possible value.
                              enum:
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Send messages in the BoxTrapper queue
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              deliver_messages \
              email='user@example.com' \
              queuefile='example.msg'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/deliver_messages?email=user%40example.com&queuefile=example.msg
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_deliver_messages.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_deliver_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/deliver_messages/,
                {
                    'email' => 'user@example.com',
                    'queuefile' => 'example.msg',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_deliver_messages.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_deliver_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'deliver_messages',
                array (
                    'email' => 'user@example.com',
                    'queuefile' => 'example.msg',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/get_allowlist:
    get:
      description: >-
        This function retrieves a list of BoxTrapper allowlist configuration
        rules. BoxTrapper will deliver emails that match these rules.


        **Important:**


        When you disable the

        [*Receive Mail* role](https://go.cpanel.net/serverroles),

        the system **disables** this function.
      operationId: BoxTrapper::get_allowlist
      parameters:
        - description: >-
            A valid email address on the cPanel account.


            **Warning:**


            If you call this function in Webmail, the system overrides this
            parameter.

            This parameter defaults to the current email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_allowlist
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: The allowlist configuration rules.
                        items:
                          description: One allowlist rule.
                          example: from allowlisted-email\@domain\.com
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return account BoxTrapper allowlist rules
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_allowlist \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_allowlist?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_allowlist.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_allowlist.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_allowlist/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_allowlist.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_allowlist.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_allowlist',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /BoxTrapper/get_blocklist:
    get:
      description: >-
        This function retrieves a list of BoxTrapper blocklist configuration
        rules. BoxTrapper will delete messages that match these rules and send a
        notification to the sender.


        **Important:**


        When you disable the

        [*Receive Mail* role](https://go.cpanel.net/serverroles),

        the system **disables** this function.
      operationId: BoxTrapper::get_blocklist
      parameters:
        - description: >-
            A valid email address on the cPanel account.


            **Warning:**


            If you call this function in Webmail, the system overrides this
            parameter.

            This parameter defaults to the current email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_blocklist
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: The blocklist configuration rules.
                        items:
                          description: One blocklist rule.
                          example: from blocklisted-email\@domain\.com
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return account BoxTrapper blocklist rules
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_blocklist \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_blocklist?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_blocklist.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_blocklist.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_blocklist/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_blocklist.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_blocklist.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_blocklist',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /BoxTrapper/get_configuration:
    get:
      description: |-
        This function retrieves an account's BoxTrapper configuration.

        **Important:**

          When you disable the [Receive Mail](https://go.cpanel.net/serverroles) role, the system disables this function.
      operationId: get_configuration
      parameters:
        - description: >-
            The account's email address.


            **Warning:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently-authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enable_auto_whitelist:
                            description: |-
                              Whether whitelisting is enabled.
                              * 1 - Enabled.
                              * 0 - Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          from_addresses:
                            description: >-
                              The email addresses that send emails from the
                              account. A comma-separated list of email
                              addresses.
                            example: user@example.com,user2@example.com
                            type: string
                          from_name:
                            description: The name of the person who owns the email account.
                            example: User
                            type: string
                          queue_days:
                            description: >-
                              The number of days that the system retains log
                              files and queued messages.
                            example: 14
                            minimum: 0
                            type: integer
                          spam_score:
                            description: >-
                              The account's [Apache
                              SpamAssassin](https://go.cpanel.net/cpaneldocsSpamFilters)
                              threshold score.
                            example: 2.5
                            type: number
                          whitelist_by_association:
                            description: >-
                              Whether the system whitelisted the email addresses
                              in a message's `To` and `From` sections, including
                              carbon-copied (CC) recipients.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's BoxTrapper configuration
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_configuration \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_configuration?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_configuration.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_configuration/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_configuration.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_configuration',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/get_email_template:
    get:
      description: |-
        This function retrieves a BoxTrapper email message template.

        **Important:**

          When you disable the
          [*Receive Mail* role](https://go.cpanel.net/serverroles),
          the system **disables** this function.
      operationId: get_email_template
      parameters:
        - description: >-
            A valid email address on the cPanel account.


            **Warning:**


            If you call this function in Webmail, the system overrides this
            parameter.

            This parameter defaults to the current email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: >-
            The message template.


            * `blacklist`

            * `returnverify`

            * `verifyreleased`

            * `verify`


            **Note:**


            For more information on each template, read our

            [BoxTrapper](https://go.cpanel.net/cpaneldocsBoxTrapper)
            documentation.
          in: query
          name: template
          required: true
          schema:
            enum:
              - blacklist
              - returnverify
              - verifyreleased
              - verify
            example: verify
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_email_template
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: The template file's contents.
                        example: >-
                          To: %email%\nSubject: Re: %subject%\n\nThe user %acct%
                          does not accept mail from your address.\n\nThe headers
                          of the message sent from your address are shown
                          below:\n\n%headers%\n",
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return specified BoxTrapper email template
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_email_template \
              email='user@example.com' \
              template='verify'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_email_template?email=user%40example.com&template=verify
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_email_template.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_email_template.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_email_template/,
                {
                    'email' => 'user@example.com',
                    'template' => 'verify',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_email_template.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_email_template.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_email_template',
                array (
                    'email' => 'user@example.com',
                    'template' => 'verify',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /BoxTrapper/get_forwarders:
    get:
      description: >-
        This function retrieves a list of email addresses to which BoxTrapper
        forwards email messages.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_forwarders
      parameters:
        - description: >-
            The account's email address.


            **Important:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently-authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_forwarders
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The email addresses to which BoxTrapper forwards
                          email.
                        items:
                          example: >-
                            user1@example.com, user2@example.com,
                            user3@example.com
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return all BoxTrapper forwarders
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_forwarders \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_forwarders?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_forwarders.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_forwarders.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_forwarders/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_forwarders.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_forwarders.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_forwarders',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /BoxTrapper/get_ignorelist:
    get:
      description: >-
        This function retrieves a list of BoxTrapper ignorelist configuration
        rules. BoxTrapper will delete messages that match these rules without
        sending a notification to the sender.


        **Important:**


        When you disable the

        [*Receive Mail* role](https://go.cpanel.net/serverroles),

        the system **disables** this function.
      operationId: BoxTrapper::get_ignorelist
      parameters:
        - description: >-
            A valid email address on the cPanel account.


            **Warning:**


            If you call this function in Webmail, the system overrides this
            parameter.

            This parameter defaults to the current email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_ignorelist
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: The ignorelist configuration rules.
                        items:
                          description: One ignorelist rule.
                          example: from ignored-email\@domain\.com
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return account BoxTrapper ignorelist rules
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_ignorelist \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_ignorelist?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_ignorelist.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_ignorelist.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_ignorelist/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_ignorelist.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_ignorelist.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_ignorelist',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /BoxTrapper/get_log:
    get:
      description: >-
        This function returns the account's BoxTrapper log file and its
        contents.


        **Important:**


        When you disable the [Receive Mail
        role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles),
        the system **disables** this function.
      operationId: get_log
      parameters:
        - description: >-
            The account's email address.


            **Important:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: |-
            The date for which to return the log file and its contents.

            **Note:**

            This parameter defaults to the current date.
          in: query
          name: date
          required: false
          schema:
            example: 1556812881
            format: unix_timestamp
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_log
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          date:
                            description: The date for which the system returned the log.
                            example: 1556812881
                            format: unix_timestamp
                            type: integer
                          lines:
                            description: >-
                              An array of lines from the log file. If the log
                              file doesn't exist or if no log lines exist in the
                              file, the function returns an empty array.
                            items:
                              example: Processing email with trusted transport method.
                              type: string
                            type: array
                          path:
                            description: >-
                              The log file's filepath. If the log file doesn't
                              exist, the function returns an empty string.
                            example: >-
                              /home/user/etc/example.com/user/boxtrapper/log/05-02-2019.log
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return BoxTrapper log file and contents
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_log \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_log?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_log.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_log.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_log/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_log.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_log.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_log',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/get_message:
    get:
      description: >-
        This function returns the first 200 lines of an email in the BoxTrapper
        queue.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_message
      parameters:
        - description: >-
            The account’s name, either an email address or the cPanel user’s
            username.


            **Important:**

             If you call this function in Webmail, the system ignores this parameter.
          example: user@example.com
          in: query
          name: email
          required: true
          schema:
            anyOf:
              - example: user@example.com
                format: email
                type: string
              - example: exampleuser
                format: username
                type: string
        - description: The message's filename.
          in: query
          name: queuefile
          required: true
          schema:
            example: example.msg
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_message
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          content:
                            description: >-
                              The email message's contents. Up to the first 200
                              lines of an email message.
                            example: >-
                              From user@example.com Tue May 07 08:30:36 2019

                              Received: from user by example.com with local
                              (Exim 4.92) (envelope-from <root@yourserver.net>)
                                  id 1hO0B1-0003Ev-Md for user2@example.com; Tue, 07 May 2019 08:30:36 -0500
                              From: user3@example.com

                              Subject: Message

                              Message-Id: <E1hO0B1-0003Ev-Md@yourserver.net>

                              Date: Tue, 07 May 2019 08:30:35 -0500


                              This is an email message
                            type: string
                          contents: {}
                          queuefile:
                            description: The message's filename.
                            example: example.msg
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return message's top 200 lines in BoxTrapper queue
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_message \
              email='user@example.com' \
              queuefile='example.msg'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_message?email=user%40example.com&queuefile=example.msg
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_message.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_message.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_message/,
                {
                    'email' => 'user@example.com',
                    'queuefile' => 'example.msg',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_message.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_message.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_message',
                array (
                    'email' => 'user@example.com',
                    'queuefile' => 'example.msg',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/get_status:
    get:
      description: >-
        This function checks whether BoxTrapper is enabled for an email account.


        **Important:**


        When you disable the [Receive Mail
        role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles),
        the system **disables** this function.
      operationId: get_status
      parameters:
        - description: >-
            The account's email address.


            **Important:**


            If you call this function in Webmail, the system ignores this
            parameter.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_status
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether BoxTrapper is enabled for the email account.
                          * `1` — Enabled.
                          * `0` — Disabled.
                        enum:
                          - 0
                          - 1
                        example: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether email account uses BoxTrapper
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              get_status \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/get_status?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_get_status.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_status.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/get_status/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_get_status.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_get_status.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'get_status',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/ignore_messages:
    get:
      description: >-
        This function marks email message senders for Exim to ignore.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function.
      operationId: ignore_messages
      parameters:
        - description: >-
            The cPanel email account from which to ignore messages.


            **Warning:** 


            If you call this function in Webmail, the system ignores this
            parameter and defaults

            to the currently-authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: |-
            The filename of the email message to ignore.

            **Note:**

             To ignore multiple email messages, duplicate this parameter.
          examples:
            multiple:
              summary: Ignore multiple email messages.
              value: >-
                queuefile-1=example1.msg queuefile-2=example2.msg
                queuefile-3=example3.msg
            single:
              summary: Ignore a single email message.
              value: example.msg
          in: query
          name: queuefile
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: ignore_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing ignored email message
                          information.
                        example:
                          - email: user@example.com
                            matches:
                              - example.msg
                            operator: ignore
                        items:
                          properties:
                            email:
                              description: The ignored email message's sender.
                              example: user@example.com
                              format: email
                              type: string
                            failed:
                              description: >-
                                Whether the system failed to ignore the
                                messages.


                                * `1` - Failed to ignore the message.


                                * `1` - Failed to ignore the message.


                                * `1` - Failed to ignore the message.


                                * `1` - Failed to ignore the message.


                                * `1` - Failed to ignore the message.


                                **Note:**

                                 The function only returns this value if it experiences issues when it ignores the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                            matches:
                              description: An array containing ignored message files.
                              items:
                                example: example.msg
                                type: string
                              type: array
                            operator:
                              description: >-
                                The operation that the system performed.


                                * `ignore` — The system ignored this email
                                message.
                              enum:
                                - ignore
                              example: ignore
                              type: string
                            reason:
                              description: >-
                                A message that describes the failure or the
                                warning.


                                **Note:**

                                 The function only returns this value if it doesn't ignore the message or experiences issues when it ignores the message. 
                              example: This is a failure message.
                              type: string
                            warning:
                              description: >-
                                Whether the system experienced issues when it
                                ignored the message.


                                * `1` — The system encountered a problem.


                                **Note:**

                                 The function only returns this value if it experiences issues when it ignores the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add email account to Exim ignore list
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              ignore_messages \
              email='user@example.com' \
              queuefile='example.msg'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/ignore_messages?email=user%40example.com&queuefile=example.msg
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_ignore_messages.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_ignore_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/ignore_messages/,
                {
                    'email' => 'user@example.com',
                    'queuefile' => 'example.msg',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_ignore_messages.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_ignore_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'ignore_messages',
                array (
                    'email' => 'user@example.com',
                    'queuefile' => 'example.msg',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/list_email_templates:
    get:
      description: >-
        This function lists the BoxTrapper email templates.


        **Important:**


        When you **disable** the [Receive
        Mail](https://go.cpanel.net/serverroles) role, the system disables this
        function.
      operationId: list_email_templates
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_email_templates
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of strings representing BoxTrapper message
                          templates.

                          * `blacklist` - BoxTrapper responds with this message
                          when a blacklisted address sends an email.

                          * `verify` - BoxTrapper responds with this message
                          when an address that does not exist on the whitelist
                          or blacklist sends an email. This message requests a
                          response to confirm that the sender is legitimate.

                          * `verifyreleased` - BoxTrapper responds with this
                          message when a person responds to the verify message
                          with an email or a click on the verification link.

                          * `returnverify` - BoxTrapper responds with this
                          message when the verification process fails.
                        example:
                          - blacklist
                          - returnverify
                          - verify
                          - verifyreleased
                        items:
                          enum:
                            - blacklist
                            - verify
                            - verifyreleased
                            - returnverify
                          example: verify
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return BoxTrapper email templates
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              list_email_templates
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/list_email_templates
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_list_email_templates.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_list_email_templates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/list_email_templates/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_list_email_templates.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_list_email_templates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'list_email_templates'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /BoxTrapper/list_queued_messages:
    get:
      description: >-
        This function returns a list of messages in the account's BoxTrapper
        queue.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables**
          this function.
      operationId: list_queued_messages
      parameters:
        - description: >-
            The email account for which to retrieve queued messages.


            **Important:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: The date for which to return queued messages.
          in: query
          name: date
          required: false
          schema:
            default: the current time
            example: 1556812881
            format: unix_timestamp
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_queued_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: Information about each queued message.
                        items:
                          properties:
                            from:
                              description: The sender's email address.
                              example: user@example.com
                              format: email
                              type: string
                            queuefile:
                              description: The message's unique ID.
                              example: example.msg
                              type: string
                            subject:
                              description: The message's subject.
                              example: Email Message Subject
                              type: string
                            time:
                              description: The message's creation time.
                              example: 1556812881
                              format: unix_timestamp
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's BoxTrapper queued messages
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              list_queued_messages \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/list_queued_messages?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_list_queued_messages.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_list_queued_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/list_queued_messages/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_list_queued_messages.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_list_queued_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'list_queued_messages',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/process_messages:
    get:
      description: >-
        This function performs a specified action on messages in the BoxTrapper
        queue.


        **Important:**


        When you disable the [*Receive
        Mail*](https://go.cpanel.net/serverroles#roles) role, the system
        **disables** this function.
      operationId: process_messages
      parameters:
        - description: >-
            The action to perform on the email message file. To perform multiple
            actions on the specified email messages, pass this parameter
            multiple times.


            * `deliver` — Deliver a specific message.

            * `deliverall` — Deliver all messages from a sender.

            * `delete` — Delete a message.

            * `deleteall` — Delete all messages from a sender.

            * `blacklist` — Blacklist the sender of an email message.

            * `whitelist` — Whitelist the sender of an email message.

            * `ignore` — Ignore email messages from a sender.


            **Note:**


            The function performs the actions on the email messages files in the
            order that you pass each action.
          examples:
            multiple:
              summary: Perform multiple actions.
              value: action=blacklist action=deleteall
            single:
              summary: Perform a single action.
              value: blacklist
          in: query
          name: action
          required: true
          schema:
            enum:
              - deliver
              - deliverall
              - delete
              - deleteall
              - blacklist
              - whitelist
              - ignore
            example: blacklist
            type: string
        - description: >-
            The filename of the email message to process. To process multiple
            email messages, pass this parameter multiple times.
          examples:
            multiple:
              summary: Process multiple email messages.
              value: email=example.msg email=example1.msg email=example2.msg
            single:
              summary: Process a single email message.
              value: example.msg
          in: query
          name: queuefile
          required: true
          schema:
            example: example.msg
            type: string
        - description: "The account's email address.\n\n**Warning:**\n\n* The `email` parameter is required when this function is called **outside** of Webmail.\n* If you call this function in Webmail, the `email` parameter is **not** required, and\nthe system\_overrides this parameter with the current authenticated user's email address."
          in: query
          name: email
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                function-fail:
                  summary: The function failed.
                  value:
                    apiversion: 3
                    module: BoxTrapper
                    result:
                      data:
                        - email: null
                          failed: 1
                          matches:
                            - example
                          reason: >-
                            (XID 2ymu8k) The system failed to locate the
                            requested message:  example.msg
                      errors: null
                      messages: null
                      metadata:
                        transformed: 1
                      status: 1
                      warnings:
                        - One or more of the operations failed.
                function-success:
                  summary: The function succeeded.
                  value:
                    apiversion: 3
                    data:
                      - email: user@example.com
                        matches:
                          - example
                        operator: blacklist
                      - email: user@example.com
                        matches:
                          - example
                        operator: deleteall
                    errors: null
                    messages: null
                    metadata:
                      transformed: 1
                    module: BoxTrapper
                    status: 1
                    warnings: null
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: process_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing processed email message
                          information.
                        items:
                          properties:
                            email:
                              description: |-
                                The email address for which the system
                                processed an email message.
                              format: email
                              nullable: true
                              type: string
                            failed:
                              description: >-
                                Whether the system failed to process the
                                message.


                                * `1` - The function failed to process the
                                message. This is the only

                                possible value.


                                **Note:**


                                The function only returns this value if it fails
                                to process the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                            matches:
                              description: >-
                                An array of email messages that the system
                                processed.
                              items:
                                type: string
                              type: array
                            operator:
                              description: >-
                                The operation that the system performed.

                                * `deliver` - Delivered a specific message.

                                * `deliverall` - Delivered all messages from a
                                sender.

                                * `delete` - Deleted a message.

                                * `deleteall` - Deleted all messages from a
                                sender.

                                * `blacklist` - Blacklisted the sender of an
                                email message.

                                * `whitelist` - Whitelisted the sender of an
                                email message.

                                * `ignore` - Ignored email messages from a
                                sender.


                                **Note:**


                                The function only returns this value if it
                                successfully processes the message.
                              enum:
                                - deliver
                                - deliverall
                                - delete
                                - deleteall
                                - blacklist
                                - whitelist
                                - ignore
                              example: delete
                              type: string
                            reason:
                              description: >-
                                A message about the failure or the warning.


                                **Note:**


                                The function only returns this value if it fails
                                to processes the message or experiences issues
                                when it processes the message.
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Run a specific BoxTrapper action for a message
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              process_messages \
              queuefile='example.msg' \
              action='blacklist'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/process_messages?queuefile=example.msg&action=blacklist
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_process_messages.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_process_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/process_messages/,
                {
                    'queuefile' => 'example.msg',
                    'action' => 'blacklist',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_process_messages.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_process_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'process_messages',
                array (
                    'queuefile' => 'example.msg',
                    'action' => 'blacklist',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/reset_email_template:
    get:
      description: >-
        This function restores the BoxTrapper email message templates to the
        system default setting.


        **Important:**


        When you **disable** the [Receive
        Mail](https://go.cpanel.net/serverroles) role, the system disables this
        function.
      operationId: reset_email_template
      parameters:
        - description: >-
            The message template. Possible values:

            * `blacklist` - BoxTrapper responds with this message when a
            blacklisted address sends an email.

            * `verify` - BoxTrapper responds with this message when an address
            that does not exist on the whitelist or blacklist sends an email.
            This message requests a response to confirm that the sender is
            legitimate.

            * `verifyreleased` - BoxTrapper responds with this message when a
            person responds to the verify message with an email or a click on
            the verification link.

            * `returnverify` - BoxTrapper responds with this message when the
            verification process fails.
          in: query
          name: template
          required: true
          schema:
            enum:
              - blacklist
              - verify
              - verifyreleased
              - returnverify
            example: verify
            type: string
        - description: "The account's email address.\n\n**Warning:**\n\nThe `email` parameter is required when this function is called outside of webmail.\nIf you call this function in Webmail, the `email` parameter is not required, and\nthe system\_overrides this parameter with the current authenticated user's email address."
          in: query
          name: email
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: reset_email_template
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Restore default BoxTrapper email message template
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              reset_email_template \
              template='verify'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/reset_email_template?template=verify
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_reset_email_template.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_reset_email_template.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/reset_email_template/,
                {
                    'template' => 'verify',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_reset_email_template.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_reset_email_template.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'reset_email_template',
                array (
                    'template' => 'verify',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /BoxTrapper/save_configuration:
    get:
      description: >-
        This function modifies an account's BoxTrapper configuration.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: save_configuration
      parameters:
        - description: >-
            The account's email address.


            **Warning:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently-authenticated email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: |-
            Whether to enable automatic whitelisting for the account.

            * `1` - Enable.
            * `0` - Disable.
          in: query
          name: enable_auto_whitelist
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            A comma-separated list of email addresses that the system uses when
            it sends messages back to the original message senders.
          in: query
          name: from_addresses
          required: true
          schema:
            example: sender1@test.com,sender2@test.com
            format: email-csv
            type: string
        - description: The number of days to retain log files and queued messages.
          in: query
          name: queue_days
          required: true
          schema:
            example: 14
            minimum: 1
            type: integer
        - description: >-
            Whether to whitelist the email addresses in a message's *To* and
            *From* sections, including carbon-copied (CC) recipients.


            * `1` - Whitelist.

            * `0` - Do **not** whitelist.
          in: query
          name: whitelist_by_association
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: The name of the person who owns the email account.
          in: query
          name: from_name
          required: false
          schema:
            example: User
            type: string
        - description: >-
            The account's Apache SpamAssassin™ threshold score. For more
            information about Apache SpamAssassin threshold scores, read our
            [Spam Filters](https://go.cpanel.net/cpaneldocsSpamFilters)
            documentation.


            **Note:**


            This parameter defaults to the account's current configuration.
          in: query
          name: spam_score
          required: false
          schema:
            example: 2.5
            type: number
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: save_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update email account's BoxTrapper configuration
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              save_configuration \
              email='user@example.com' \
              from_addresses='sender1@test.com,sender2@test.com' \
              queue_days='14' \
              enable_auto_whitelist='1' \
              whitelist_by_association='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/save_configuration?email=user%40example.com&from_addresses=sender1%40test.com%2csender2%40test.com&queue_days=14&enable_auto_whitelist=1&whitelist_by_association=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_save_configuration.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_save_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/save_configuration/,
                {
                    'email' => 'user@example.com',
                    'from_addresses' => 'sender1@test.com,sender2@test.com',
                    'queue_days' => '14',
                    'enable_auto_whitelist' => '1',
                    'whitelist_by_association' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_save_configuration.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_save_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'save_configuration',
                array (
                    'email' => 'user@example.com',
                    'from_addresses' => 'sender1@test.com,sender2@test.com',
                    'queue_days' => '14',
                    'enable_auto_whitelist' => '1',
                    'whitelist_by_association' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/save_email_template:
    get:
      description: >-
        This function saves the contents of a BoxTrapper message template.


        **Important:**


        When you disable the [_Receive Mail_
        role](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: save_email_template
      parameters:
        - description: >-
            The template file's contents.


            You can use [variables](https://go.cpanel.net/cpaneldocsBoxTrapper)
            in the template

            to include details about the original message.


            **Important:**


            * You **must** include `To: %email%` in this parameter's value.

            * If you use the `verify` template, you **must** include `Subject:
            verify#%msgid%` in this parameter's value.

            * This value cannot exceed four kilobytes (KB).

            * You **must** URI-encode this parameter's value when using the CLI.
          in: query
          name: contents
          required: true
          schema:
            example: |-
              To: %email%
              Subject: Re: %subject%

              The user %acct% does not accept mail from your address.

              The headers of the message sent from your address are shown below:

              %headers%
            type: string
        - description: "The account's email address.\n\n**Warning:**\n\nIf you call this function in Webmail, the system overrides this parameter.\n\n**Note:**\n\nThis parameter\_defaults to the current email address."
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: >-
            The message template.


            * `blacklist`

            * `returnverify`

            * `verifyreleased`

            * `verify`


            **Important:**


            If you use the `verify` template, you **must** include `Subject:
            verify#%msgid%` in this parameter's value.


            **Note:**


            For more information about each template, read our [BoxTrapper
            documentation](https://go.cpanel.net/cpaneldocsBoxTrapper).
          in: query
          name: template
          required: true
          schema:
            enum:
              - blacklist
              - returnverify
              - verifyreleased
              - verify
            example: blacklist
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: save_email_template
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Save BoxTrapper message template contents
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              save_email_template \
              email='user@example.com' \
              template='blacklist' \
              contents='To: %25email%25
            Subject: Re: %25subject%25

            The user %25acct%25 does not accept mail from your address.

            The headers of the message sent from your address are shown below:

            %25headers%25'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/save_email_template?email=user%40example.com&template=blacklist&contents=To%3a%20%25email%25%0aSubject%3a%20Re%3a%20%25subject%25%0a%0aThe%20user%20%25acct%25%20does%20not%20accept%20mail%20from%20your%20address.%0a%0aThe%20headers%20of%20the%20message%20sent%20from%20your%20address%20are%20shown%20below%3a%0a%0a%25headers%25
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_save_email_template.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_save_email_template.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/save_email_template/,
                {
                    'email' => 'user@example.com',
                    'template' => 'blacklist',
                    'contents' => 'To: %email%
            Subject: Re: %subject%


            The user %acct% does not accept mail from your address.


            The headers of the message sent from your address are shown below:


            %headers%',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_save_email_template.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_save_email_template.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'save_email_template',
                array (
                    'email' => 'user@example.com',
                    'template' => 'blacklist',
                    'contents' => 'To: %email%
            Subject: Re: %subject%


            The user %acct% does not accept mail from your address.


            The headers of the message sent from your address are shown below:


            %headers%',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /BoxTrapper/set_allowlist:
    get:
      description: >-
        This function sets the BoxTrapper allowlist configuration rules.
        BoxTrapper will deliver emails that match these rules.


        **Important:**


        When you disable the

        [*Receive Mail* role](https://go.cpanel.net/serverroles),

        the system **disables** this function.
      operationId: BoxTrapper::set_allowlist
      parameters:
        - description: >-
            A valid email address on the cPanel account.


            **Warning:**


            If you call this function in Webmail, the system overrides this
            parameter.

            This parameter defaults to the current email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: >-
            An array of allowlist rules.


            **Note:**


            You can set multiple allowlist rules, duplicate or increment the
            parameter name. For example,

            `rules-1`, `rules-2`, and `rules-3`.
          examples:
            multiple:
              summary: Set multiple rules.
              value: >-
                rules-1='allowlisted-email\@domain\.com' rules-2='from
                allowlisted-email2\@domain\.com' rules-3='to domain2\.com'
            multiple-alternative:
              summary: Set multiple rules.
              value: >-
                rules='allowlisted-email\@domain\.com' rules='from
                allowlisted-email2\@domain\.com' rules='to domain2\.com'
            single:
              summary: Set a single rule.
              value: allowlisted-email\@domain\.com
          in: query
          name: rules
          required: true
          schema:
            items:
              type: string
            type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_allowlist
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update account BoxTrapper allowlist
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username BoxTrapper set_allowlist
            email='user@example.com' rules-1='allowlisted-email\@domain\.com'
            rules-2='from allowlisted-email2\@domain\.com' rules-3='to
            domain2\.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/set_allowlist?email=user%40example.com&rules=allowlisted-email%5c%40domain%5c.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_set_allowlist.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_allowlist.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/set_allowlist/,
                {
                    'email' => 'user@example.com',
                    'rules' => 'allowlisted-email\@domain\.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_set_allowlist.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_allowlist.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'set_allowlist',
                array (
                    'email' => 'user@example.com',
                    'rules' => 'allowlisted-email\@domain\.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /BoxTrapper/set_blocklist:
    get:
      description: >-
        This function sets the BoxTrapper blocklist configuration rules.
        BoxTrapper will delete messages that match these rules and send a
        notification to the sender.


        **Important:**


        When you disable the

        [*Receive Mail* role](https://go.cpanel.net/serverroles),

        the system **disables** this function.
      operationId: BoxTrapper::set_blocklist
      parameters:
        - description: >-
            A valid email address on the cPanel account.


            **Warning:**


            If you call this function in Webmail, the system overrides this
            parameter.

            This parameter defaults to the current email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: >-
            An array of blocklist rules.


            **Note:**


            You can set multiple block rules, duplicate or increment the
            parameter name. For example,

            `rules-1`, `rules-2`, and `rules-3`.
          examples:
            multiple:
              summary: Set multiple rules.
              value: >-
                rules-1='blocklisted-email\@domain\.com' rules-2='from
                blocklisted-email2\@domain\.com' rules-3='to domain2\.com'
            multiple-alternative:
              summary: Set multiple rules.
              value: >-
                rules='blocklisted-email\@domain\.com' rules='from
                blocklisted-email2\@domain\.com' rules='to domain2\.com'
            single:
              summary: Set a single rule.
              value: blocklisted-email\@domain\.com
          in: query
          name: rules
          required: true
          schema:
            items:
              type: string
            type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_blocklist
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update account BoxTrapper blocklist
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username BoxTrapper set_blocklist
            email='user@example.com' rules-1='blocklisted-email\@domain\.com'
            rules-2='from blocklisted-email2\@domain\.com' rules-3='to
            domain2\.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/set_blocklist?email=user%40example.com&rules=blocklisted-email%5c%40domain%5c.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_set_blocklist.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_blocklist.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/set_blocklist/,
                {
                    'email' => 'user@example.com',
                    'rules' => 'blocklisted-email\@domain\.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_set_blocklist.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_blocklist.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'set_blocklist',
                array (
                    'email' => 'user@example.com',
                    'rules' => 'blocklisted-email\@domain\.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /BoxTrapper/set_forwarders:
    get:
      description: >-
        This function adds a list of email addresses to which BoxTrapper
        forwards email messages.


        **Important:**

          When you disable the [Receive Mail](https://go.cpanel.net/serverroles) role, the system **disables** this function.
      operationId: set_forwarders
      parameters:
        - description: >-
            The account's email address.


            **Warning:**


            If you call this function

            in Webmail, the system ignores this parameter and uses the
            currently-authenticated

            email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            type: string
        - description: The email addresses to which to forward email messages.
          example:
            - user1@example.com
          in: query
          name: forwarder
          required: true
          schema:
            items:
              example: user1@example.com
              format: email
            type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_forwarders
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add email address to BoxTrapper forwarders
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              set_forwarders \
              email='user@example.com' \
              forwarder='user1@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/set_forwarders?email=user%40example.com&forwarder=user1%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_set_forwarders.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_forwarders.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/set_forwarders/,
                {
                    'email' => 'user@example.com',
                    'forwarder' => 'user1@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_set_forwarders.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_forwarders.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'set_forwarders',
                array (
                    'email' => 'user@example.com',
                    'forwarder' => 'user1@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /BoxTrapper/set_ignorelist:
    get:
      description: >-
        This function sets the BoxTrapper ignorelist configuration rules.
        BoxTrapper will delete messages that match these rules without sending a
        notification to the sender.


        **Important:**


        When you disable the

        [*Receive Mail* role](https://go.cpanel.net/serverroles),

        the system **disables** this function.
      operationId: BoxTrapper::set_ignorelist
      parameters:
        - description: >-
            A valid email address on the cPanel account.


            **Warning:**


            If you call this function in Webmail, the system overrides this
            parameter.

            This parameter defaults to the current email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: >-
            An array of ignorelist rules.


            **Note:**


            You can set multiple ignore rules, duplicate or increment the
            parameter name. For example,

            `rules-1`, `rules-2`, and `rules-3`.
          examples:
            multiple:
              summary: Set multiple rules.
              value: >-
                rules-1='ignored-email\@domain\.com' rules-2='from
                ignored-email2\@domain\.com' rules-3='to domain2\.com'
            multiple-alternative:
              summary: Set multiple rules.
              value: >-
                rules='ignored-email\@domain\.com' rules='from
                ignored-email2\@domain\.com' rules='to domain2\.com'
            single:
              summary: Set a single rule.
              value: ignored-email\@domain\.com
          in: query
          name: rules
          required: true
          schema:
            items:
              type: string
            type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_ignorelist
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update account BoxTrapper ignorelist
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username BoxTrapper set_ignorelist
            email='user@example.com' rules-1='ignored-email\@domain\.com'
            rules-2='from ignored-email2\@domain\.com' rules-3='to domain2\.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/set_ignorelist?email=user%40example.com&rules=ignored-email%5c%40domain%5c.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_set_ignorelist.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_ignorelist.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/set_ignorelist/,
                {
                    'email' => 'user@example.com',
                    'rules' => 'ignored-email\@domain\.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_set_ignorelist.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_ignorelist.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'set_ignorelist',
                array (
                    'email' => 'user@example.com',
                    'rules' => 'ignored-email\@domain\.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /BoxTrapper/set_status:
    get:
      description: |-
        This function enables or disables BoxTrapper for an email account.

        **Important:**

          When you disable the [Receive Mail](https://go.cpanel.net/serverroles) role, the system **disables** this function.
      operationId: set_status
      parameters:
        - description: >-
            The account's name. This can be an email address or the cPanel
            user’s username.


            **Warning:**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently-authenticated email address.
          example: user@example.com
          in: query
          name: email
          required: true
          schema:
            oneOf:
              - example: user@example.com
                format: email
                type: string
              - example: exampleuser
                format: username
                type: string
        - description: |-
            Whether to enable or disable BoxTrapper for the email account.

            * `1` - Enable BoxTrapper.
            * `0` - **Disable** BoxTrapper.
          in: query
          name: enabled
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_status
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable or disable BoxTrapper for email account
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              set_status \
              email='user@example.com' \
              enabled='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/set_status?email=user%40example.com&enabled=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_set_status.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_status.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/set_status/,
                {
                    'email' => 'user@example.com',
                    'enabled' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_set_status.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_set_status.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'set_status',
                array (
                    'email' => 'user@example.com',
                    'enabled' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /BoxTrapper/whitelist_messages:
    get:
      description: >-
        This function whitelists email messages.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.


        **Note:**


        To retrieve email messages in the BoxTrapper queue from senders that you
        did not previously whitelist, use the UAPI
        `BoxTrapper::deliver_messages` function.
      operationId: whitelist_messages
      parameters:
        - description: >-
            The filename of the email message to whitelist.


            **Note:**


            To get a list of filenames in an account's BoxTrapper queue, use the
            UAPI `BoxTrapper::list_queued_messages` function.


            **Note:**


            To whitelist multiple email messages, duplicate this parameter.
          examples:
            multiple:
              summary: Whitelist multiple messages.
              value: queuefile=ex1.msg&queuefile=ex2.msg&queuefile=ex3.msg
            single:
              summary: Whitelist a single message.
              value: example.msg
          in: query
          name: queuefile
          required: true
          schema:
            example: example.msg
            type: string
        - description: >-
            The cPanel account email address for which to whitelist messages.


            **Warning**


            If you call this function in Webmail, the system ignores this
            parameter and defaults to the currently-authenticated email address.
          in: query
          name: email
          required: false
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: whitelist_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: BoxTrapper
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of one or more objects, depending on how many
                          queuefiles were passed as parameters. Each object
                          contains information about the whitelisted email
                          message.
                        example:
                          - email: user@example.com
                            matches:
                              - example.msg
                            operator: whitelist
                        items:
                          properties:
                            email:
                              description: A whitelisted email address.
                              example: user@example.com
                              format: email
                              type: string
                            failed:
                              default: '1'
                              description: >-
                                The system failed to whitelist the message.


                                * `1` — The function failed to whitelist the
                                message. This is the only possible value.


                                **Note:**


                                The function only returns this property if it
                                failed to whitelist the message.
                              enum:
                                - '1'
                              example: '1'
                              type: string
                            matches:
                              description: >-
                                An array of message files that the system
                                whitelisted.


                                **Note:**


                                The function **only** returns this value if it
                                whitelists the message.
                              items:
                                example: example.msg
                                type: string
                              type: array
                            operator:
                              default: whitelist
                              description: The action that the system performed.
                              enum:
                                - whitelist
                              example: whitelist
                              type: string
                            reason:
                              description: >-
                                The reason the function skipped the message
                                during whitelisting. The `reason` property is
                                returned only if the function failed to
                                whitelist the message.
                              example: >-
                                The cPanel user, "user" does not own the
                                requested account "user@example.com."
                              type: string
                            warning:
                              default: 1
                              description: >-
                                Whether the system experienced issues when it
                                whitelisted the message.


                                * `1` — There was an issue whitelisting the
                                message. This is the only possible value.


                                **Note:**


                                The function only returns this property if it
                                failed to whitelist the message.
                              enum:
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add email address to BoxTrapper allowed senders
      tags:
        - BoxTrapper
        - Spam Prevention (BoxTrapper)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              BoxTrapper \
              whitelist_messages \
              queuefile='example.msg'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/BoxTrapper/whitelist_messages?queuefile=example.msg
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file BoxTrapper_whitelist_messages.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_whitelist_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/BoxTrapper/,
                q/whitelist_messages/,
                {
                    'queuefile' => 'example.msg',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file BoxTrapper_whitelist_messages.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/BoxTrapper_whitelist_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'BoxTrapper',
                'whitelist_messages',
                array (
                    'queuefile' => 'example.msg',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Branding/get_application_information:
    get:
      description: >-
        This function retrieves an application's information from the
        `dynamicui.conf` file.
      operationId: get_application_information
      parameters:
        - description: >-
            The application's feature name. This value **must** match a
            feature's `app_key` value. For a list of app_key values, read our
            [Guide to cPanel Interface Customization -
            Appkeys](https://go.cpanel.net/appkey) documentation.
          in: query
          name: app_key
          required: true
          schema:
            example: boxtrapper
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_application_information
                    type: string
                  module:
                    description: The name of the module called.
                    example: Branding
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          feature:
                            description: >-
                              The application's feature name. The `app_key`
                              parameter's value.
                            example: boxtrapper
                            type: string
                          file:
                            description: The application's icon's filename.
                            example: boxtrapper
                            type: string
                          group:
                            description: The application's group.
                            example: mail
                            type: string
                          height:
                            description: The application's icon's height, in pixels.
                            example: 32
                            minimum: 1
                            type: integer
                          if:
                            description: >-
                              Conditional arguments that determine whether to
                              display the item, if any exist. Conditional
                              arguments that determine whether to display the
                              item. For example, $isreseller indicates that the
                              item only displays for reseller accounts. For more
                              information, read our Guide to cPanel Variables
                              documentation.
                            example: $hasboxtrapper
                            type: string
                          imgtype:
                            description: |-
                              The item's image type.
                               `icon` is the only possible value.
                            enum:
                              - icon
                            example: icon
                            type: string
                          itemdesc:
                            description: The application's display name.
                            example: BoxTrapper
                            type: string
                          itemorder:
                            description: >-
                              The application's order in the `dynamicui.conf`
                              file representing the application's display order
                              in cPanel's Home interface. For example, the first
                              item on the cPanel Home interface has an
                              `itemorder` value of `1`.
                            example: 3
                            minimum: 1
                            type: integer
                          module:
                            description: The application's module. A valid module name.
                            example: BoxTrapper
                            type: string
                          searchtext:
                            description: >-
                              One or more search terms. The application's icon
                              will display when users enter these search terms
                              in the Quick Find text box. A space-separated list
                              of search terms.
                            example: boxtrapper
                            type: string
                          subtype:
                            description: |-
                              The item's subtype.
                               `img` is the only possible value .
                            enum:
                              - img
                            example: img
                            type: string
                          type:
                            description: |-
                              The application's type.
                               `image` is the only possible value.
                            enum:
                              - image
                            example: image
                            type: string
                          url:
                            description: >-
                              The location to which the application's icon
                              links. A valid filepath or URL.
                            example: mail/boxtrapper.html
                            type: string
                          width:
                            description: >-
                              The application's icon's width representing an
                              image width, in pixels.
                            example: 35
                            minimum: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return single app's info from dynamicui.conf
      tags:
        - Branding
        - Application Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Branding \
              get_application_information \
              app_key='boxtrapper'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Branding/get_application_information?app_key=boxtrapper
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Branding_get_application_information.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Branding_get_application_information.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Branding/,
                q/get_application_information/,
                {
                    'app_key' => 'boxtrapper',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Branding_get_application_information.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Branding_get_application_information.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Branding',
                'get_application_information',
                array (
                    'app_key' => 'boxtrapper',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Branding/get_applications:
    get:
      description: >-
        This function retrieves an application's information from a specific
        theme's `dynamicui.conf` file.
      operationId: get_applications
      parameters:
        - description: >-
            A comma-separated list of an application feature names. If you do
            not specify this parameter,

            the output will include all of the applications that the
            `dynamicui.conf` file contains.


            **Note:**


            * This value must match an application's `feature` value in the
            `dynamicui.conf` file.

            * For more information, read our [Guide to cPanel Interface
            Customization - Appkeys](https://go.cpanel.net/appkey)
            documentation.
          in: query
          name: app_keys
          required: false
          schema:
            example: addon_domains,ftp_accounts,anonymous_ftp
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_applications
                    type: string
                  module:
                    description: The name of the module called.
                    example: Branding
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: >-
                            The feature's details. The function returns an
                            object for each

                            application feature.


                            **Note:***


                            The property name corresponds to the name(s)
                            specified

                            in the `app_keys` parameter.
                          properties:
                            feature:
                              description: >-
                                The feature name. The item will **only** display
                                if the cPanel user has access to this feature.
                              example: addondomains
                              type: string
                            file:
                              description: The application's icon's filename.
                              example: addon_domains
                              type: string
                            group:
                              description: The item's group.
                              example: advanced
                              type: string
                            height:
                              description: The application's icon's height, in pixels.
                              example: 48
                              minimum: 1
                              type: integer
                            if:
                              description: >-
                                Conditional arguments that determine whether to
                                display the item, if any exist.


                                For example, `$isreseller` indicates that the
                                item **only** displays for reseller

                                accounts.


                                For more information, read our

                                [Guide to cPanel
                                Variables](https://go.cpanel.net/guidetovariables)

                                documentation.
                              example: $is_reseller
                              type: string
                            imgtype:
                              description: |-
                                The item's image type.

                                * `icon` is the only possible value.
                              enum:
                                - icon
                              example: icon
                              type: string
                            implements:
                              description: >-
                                The `implements` value for the application. This
                                corresponds to the `implements` field in the
                                `dynamicui.conf` file.
                              example: Domains_AddonDomains
                              type: string
                            itemdesc:
                              description: The application's display name. value.
                              example: Addon Domain
                              type: string
                            itemorder:
                              description: >-
                                The application's order in the `dynamicui.conf`

                                file, representing the application's display
                                order in

                                cPanel's *Home* interface.


                                For example, the first item on the cPanel *Home*
                                interface

                                has an `itemorder` value of `1`.
                              example: 4
                              minimum: 1
                              type: integer
                            searchtext:
                              description: >-
                                A space-separated list of search terms. The item
                                will display when users enter these search terms
                                in the *Quick Find* textbox.
                              example: Domains Addon domain
                              type: string
                            subtype:
                              description: |-
                                The item's subtype.

                                * `img` is the only possible value.
                              enum:
                                - img
                              example: img
                              type: string
                            touch:
                              description: >-
                                Conditional arguments that determine whether to
                                display the item, if the touch file exists.
                              example: ftp
                              type: string
                            type:
                              description: |-
                                The application's type.

                                * `image` is the only possible value.
                              enum:
                                - image
                              example: image
                              type: string
                            url:
                              description: >-
                                The location to which the application's icon
                                links.
                              example: addon/index.html
                              format: url-path
                              type: string
                            width:
                              description: The application's icon's width.
                              example: 48
                              minimum: 1
                              type: integer
                          type: object
                        example:
                          addon_domains:
                            acontent: ''
                            base64_png_image: ''
                            feature: addondomains
                            file: addon_domains
                            group: domains
                            height: '48'
                            if: $HASROLE{'WebServer'}
                            imgtype: icon
                            implements: Domains_AddonDomains
                            itemdesc: Addon Domains
                            itemorder: '3'
                            key: addon_domains
                            onclick: ''
                            plainitemdesc: Addon Domains
                            searchtext: Domains Addon domain Addon Domains
                            subtype: img
                            target: ''
                            type: image
                            url: addon/index.html
                            width: '48'
                          anonymous_ftp:
                            acontent: ''
                            base64_png_image: ''
                            feature: ftpaccts
                            file: anonymous_ftp
                            group: files
                            height: '48'
                            if: $SERVICEPROVIDED{'ftp'} && $hasanonftp
                            imgtype: icon
                            itemdesc: Anonymous FTP
                            itemorder: '8'
                            key: anonymous_ftp
                            onclick: ''
                            plainitemdesc: Anonymous FTP
                            searchtext: Anonymous FTP anonymousftp
                            subtype: img
                            target: ''
                            touch: ftp
                            type: image
                            url: ftp/anonymous.html
                            width: '48'
                          ftp_accounts:
                            acontent: ''
                            base64_png_image: ''
                            feature: ftpaccts
                            file: ftp_accounts
                            group: files
                            height: '48'
                            if: $SERVICEPROVIDED{'ftp'}
                            imgtype: icon
                            itemdesc: FTP Accounts
                            itemorder: '6'
                            key: ftp_accounts
                            onclick: ''
                            plainitemdesc: FTP Accounts
                            searchtext: FTP Accounts ftp create
                            subtype: img
                            target: ''
                            touch: ftp
                            type: image
                            url: ftp/accounts.html
                            width: '48'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return multiple apps' info from dynamicui.conf
      tags:
        - Branding
        - Application Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Branding \
              get_applications
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Branding/get_applications
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Branding_get_applications.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Branding_get_applications.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Branding/,
                q/get_applications/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Branding_get_applications.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Branding_get_applications.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Branding',
                'get_applications'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Branding/get_available_applications:
    get:
      description: >-
        This function retrieves information about the groups and applications in
        the authenticated user's cPanel interface.
      operationId: get_available_applications
      parameters:
        - description: >-
            A pipe-separated list of group names denoting the order in which to
            sort the

            groups. If you do not supply a value, the function does not sort the
            groups.


            **Note:**


            `arglist` is an alias for this parameter.
          in: query
          name: nvarglist
          required: false
          schema:
            example: pref|software|domains
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_available_applications
                    type: string
                  module:
                    description: The name of the module called.
                    example: Branding
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          default_group_order:
                            additionalProperties:
                              description: |-
                                The group's default position.

                                **Note:**

                                The property name is the group ID.
                              type: integer
                            description: >-
                              An object that defines the default order of
                              applications in cPanel.
                            example:
                              advanced: 7
                              databases: 2
                              domains: 3
                              email: 4
                              files: 1
                              metrics: 5
                              preferences: 8
                              sample_apps: 9
                              security: 6
                              software: 6
                            type: object
                          grouporder:
                            description: >-
                              A list of group IDs, in the order in which the
                              groups appear.
                            example:
                              - files
                              - databases
                              - domains
                              - email
                              - metrics
                              - security
                              - software
                              - advanced
                              - preferences
                              - pref
                            items:
                              type: string
                            type: array
                          groups:
                            description: >-
                              Information about each group in the cPanel
                              interface.
                            items:
                              properties:
                                desc:
                                  description: The group's description.
                                  example: Files
                                  type: string
                                group:
                                  description: The group's ID.
                                  example: files
                                  type: string
                                items:
                                  description: The groups and their application details.
                                  items:
                                    example:
                                      acontent: target="file_manager"
                                      base64_png_image: ''
                                      feature: filemanager
                                      file: file_manager
                                      group: files
                                      height: '48'
                                      if: $HASROLE{'FileStorage'}
                                      imgtype: icon
                                      implements: FileManager_Home
                                      itemdesc: File Manager
                                      itemorder: '1'
                                      key: file_manager
                                      onclick: ''
                                      plainitemdesc: File Manager
                                      searchtext: File Manager file-manager
                                      subtype: img
                                      target: file_manager
                                      type: image
                                      url: filemanager/index.html
                                      width: '48'
                                    properties:
                                      acontent:
                                        description: >-
                                          The content of a tag in the
                                          application's link.
                                        example: file_manager
                                        type: string
                                      base64_png_image:
                                        description: The application's icon in Base64 format.
                                        format: base64 image
                                        type: string
                                      feature:
                                        description: >-
                                          A feature name. The icon **only**
                                          displays if the cPanel user can access
                                          this feature.
                                        example: addondomains
                                        type: string
                                      file:
                                        description: The application's icon's filename.
                                        example: addon_domains
                                        type: string
                                      group:
                                        description: The item's group.
                                        example: advanced
                                        type: string
                                      height:
                                        description: The application icon height, in pixels.
                                        example: '48'
                                        type: string
                                      if:
                                        description: >-
                                          An expression containing cPanel
                                          variables that determine whether

                                          to display the item. The function
                                          **only** returns this value if

                                          any variables exist.


                                          For example, `$isreseller` indicates
                                          that the item **only**

                                          displays for reseller accounts.


                                          For more information, read our

                                          [Guide to cPanel Variables
                                          documentation](https://go.cpanel.net/guidetovariables).
                                        example: $isreseller
                                        type: string
                                      imgtype:
                                        description: |-
                                          The item's image type.

                                          `icon` is the only possible value.
                                        enum:
                                          - icon
                                        example: icon
                                        type: string
                                      implements:
                                        description: >-
                                          The `implements` name of the
                                          application. WHM API 1's
                                          `create_user_session` and
                                          `get_users_links` functions use this
                                          value.
                                        example: Domains_AddonDomains
                                        type: string
                                      itemdesc:
                                        description: The application's display name.
                                        example: Addon Domain
                                        type: string
                                      itemorder:
                                        description: >-
                                          The application's order in the
                                          `dynamicui.conf` file. This value
                                          represents the application's display
                                          order in cPanel's *Home* interface.
                                        example: '4'
                                        type: string
                                      module:
                                        description: >-
                                          The Perl module that the application
                                          requires.
                                        example: My::Module
                                        type: string
                                      onclick:
                                        description: >-
                                          JavaScript function that the browser
                                          calls before or instead of URL
                                          navigation.
                                        example: function
                                        type: string
                                      searchtext:
                                        description: >-
                                          One or more space-separated search
                                          terms.  The icon will display when users
                                          enter these search terms in the *Quick
                                          Find* text box in the cPanel interface.
                                        example: Domains Addon domain
                                        type: string
                                      subtype:
                                        description: |-
                                          The item's subtype.

                                          `img` is the only possible value.
                                        enum:
                                          - img
                                        example: img
                                        type: string
                                      target:
                                        description: The target of the application's link.
                                        example: file_manager
                                        type: string
                                      touch:
                                        description: >-
                                          Conditional arguments that determine
                                          whether to display the item, if a
                                          specified touch file exists.
                                        example: ftp
                                        type: string
                                      type:
                                        description: |-
                                          The application's type.

                                          `image` is the only possible value.
                                        enum:
                                          - image
                                        example: image
                                        type: string
                                      url:
                                        description: >-
                                          The path to which the application's icon
                                          links.
                                        example: addon/index.html
                                        format: url-path
                                        type: string
                                      width:
                                        description: >-
                                          The application's icon's width, in
                                          pixels.
                                        example: '48'
                                        type: string
                                    type: object
                                  type: array
                              type: object
                            type: array
                          implements:
                            additionalProperties:
                              description: >-
                                The application and its Appkey value.


                                **Note:**


                                This return's name is the application's name, in
                                its `implements` value format.
                              type: string
                            description: >-
                              An object mapping the `implements` names to Appkey
                              values for applications in cPanel.


                              For example, use this mapping to determine that
                              the `implements`

                              value `SSL_TLS_Status` maps to the Appkey value
                              `tls_status`.


                              **Note:**


                              * The Appkey for an application can be found in
                              the `key` attribute elsewhere in the API response.

                              * The `implements` for an application can be found
                              in the `implements` attribute elsewhere in the API
                              response.

                              * For more information about Appkey values, read
                              our [Guide to cPanel Interface Customization -
                              Appkeys](https://go.cpanel.net/paper-lantern-theme-guide-to-cpanel-interface-customization-appkeys)
                              documentation.
                            example:
                              API_Tokens_Manager: api_tokens
                              Backups_Home: backup
                              Calendar_Configure: calendar_and_contacts
                              ContactInfo_Change: contact_information
                              Cron_Home: cron_jobs
                              Database_MySQL: mysql_databases
                              Database_phpMyAdmin: php_my_admin
                              Domains_AddonDomains: addon_domains
                              Domains_SubDomains: subdomains
                              Email_AccountLevelFiltering: global_email_filters
                              Email_Accounts: email_accounts
                              Email_Authentication: email_deliverability
                              Email_AutoResponders: autoresponders
                              Email_BoxTrapper: boxtrapper
                              Email_DefaultAddress: default_address
                              Email_DeliveryReport: track_delivery
                              Email_Disk_Usage: email_disk_usage
                              Email_Forwarders: forwarders
                              Email_MailingLists: mailing_lists
                              Email_Routing: email_routing
                              Email_SpamFilter: apache_spam_assassin
                              Email_UserLevelFiltering: email_filters
                              FileManager_Home: file_manager
                              Locale_Change: change_language
                              Password_Change: change_password
                              SSL_TLS_Manager: ssl_tls
                              SSL_TLS_Status: tls_status
                              Site_Software: site_software
                              Stats_AWStats: awstats
                            type: object
                          index:
                            additionalProperties:
                              description: >-
                                The order in which the application appears in
                                the cPanel interface:

                                * The first integer represents the group in
                                which the application appears, starting at `0`.

                                * The second integer represents the order in
                                which the application appears in the group,
                                starting at `0`.


                                **Note:**


                                The array's name is the application's name.
                              items:
                                type: integer
                              type: array
                            description: >-
                              The applications and the order in which they
                              appear in the cPanel interface.
                            example:
                              addon_domains:
                                - 2
                                - 2
                              address_importer:
                                - 3
                                - 10
                              aliases:
                                - 2
                                - 4
                              analog_stats:
                                - 4
                                - 5
                              apache_handlers:
                                - 7
                                - 5
                              apache_spam_assassin:
                                - 3
                                - 11
                              api_tokens:
                                - 5
                                - 3
                              autoresponders:
                                - 3
                                - 3
                              awstats:
                                - 4
                                - 4
                              backup:
                                - 0
                                - 5
                              backup_wizard:
                                - 0
                                - 6
                              bandwidth:
                                - 4
                                - 2
                              boxtrapper:
                                - 3
                                - 13
                              calendar_and_contacts:
                                - 3
                                - 14
                              change_language:
                                - 8
                                - 1
                              change_password:
                                - 8
                                - 0
                              change_style:
                                - 8
                                - 2
                              contact_information:
                                - 8
                                - 3
                              cron_jobs:
                                - 7
                                - 1
                              default_address:
                                - 3
                                - 4
                              directory_privacy:
                                - 0
                                - 2
                              disk_usage:
                                - 0
                                - 3
                              domains:
                                - 2
                                - 1
                              email_accounts:
                                - 3
                                - 0
                              email_deliverability:
                                - 3
                                - 9
                              email_disk_usage:
                                - 3
                                - 15
                              email_filters:
                                - 3
                                - 8
                              email_routing:
                                - 3
                                - 2
                              encryption:
                                - 3
                                - 12
                              error_pages:
                                - 7
                                - 4
                              errors:
                                - 4
                                - 1
                              file_manager:
                                - 0
                                - 0
                              forwarders:
                                - 3
                                - 1
                              global_email_filters:
                                - 3
                                - 7
                              hotlink_protection:
                                - 5
                                - 4
                              images:
                                - 0
                                - 1
                              indexes:
                                - 7
                                - 3
                              ip_blocker:
                                - 5
                                - 1
                              leech_protection:
                                - 5
                                - 5
                              mailing_lists:
                                - 3
                                - 5
                              metrics_editor:
                                - 4
                                - 7
                              mime_types:
                                - 7
                                - 6
                              multiphp_ini_editor:
                                - 6
                                - 5
                              multiphp_manager:
                                - 6
                                - 4
                              mysql_database_wizard:
                                - 1
                                - 2
                              mysql_databases:
                                - 1
                                - 1
                              optimize_website:
                                - 6
                                - 3
                              perl_modules:
                                - 6
                                - 1
                              php_my_admin:
                                - 1
                                - 0
                              php_pear_packages:
                                - 6
                                - 0
                              raw_access:
                                - 4
                                - 3
                              redirects:
                                - 2
                                - 5
                              remote_mysql:
                                - 1
                                - 3
                              site_publisher:
                                - 2
                                - 0
                              site_software:
                                - 6
                                - 2
                              ssh_access:
                                - 5
                                - 0
                              ssl_tls:
                                - 5
                                - 2
                              subdomains:
                                - 2
                                - 3
                              terminal:
                                - 7
                                - 0
                              tls_status:
                                - 5
                                - 6
                              track_delivery:
                                - 3
                                - 6
                              track_dns:
                                - 7
                                - 2
                              user_manager:
                                - 8
                                - 4
                              version_control:
                                - 0
                                - 7
                              visitors:
                                - 4
                                - 0
                              web_disk:
                                - 0
                                - 4
                              webalizer:
                                - 4
                                - 6
                              zone_editor:
                                - 2
                                - 6
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return current user's cPanel application details
      tags:
        - Branding
        - Application Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Branding \
              get_available_applications
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Branding/get_available_applications
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Branding_get_available_applications.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Branding_get_available_applications.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Branding/,
                q/get_available_applications/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Branding_get_available_applications.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Branding_get_available_applications.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Branding',
                'get_available_applications'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Branding/get_information_for_applications:
    get:
      description: |-
        This function retrieves an application's information from a specific
        theme's `sitemap.json` file.
      operationId: get_information_for_applications
      parameters:
        - description: >-
            The absolute path to the directory containing the `sitemap.json`
            file.

            This is the path to your theme's document root.
          in: query
          name: docroot
          required: true
          schema:
            example: /usr/local/cpanel/base/webmail/jupiter
            format: path
            type: string
        - description: >-
            A comma-separated list of Appkey names. If you do **not**

            specify this parameter, the output will include all of the
            applications that the

            `sitemap.json` file contains.


            **Note:**


            This value **must** match an application's `key` value in the
            `sitemap.json` file.

            For more information, read our

            [Guide to cPanel Interface Customization -
            Appkeys](https://go.cpanel.net/appkey)

            documentation.
          in: query
          name: app_keys
          required: false
          schema:
            example: email_filters
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_information_for_applications
                    type: string
                  module:
                    description: The name of the module called.
                    example: Branding
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: >-
                            An object containing information about the queried
                            `app_keys` application.


                            **Note:**


                            The object's name is the value specified in the
                            `app_keys` parameter.
                          properties:
                            condition:
                              description: >-
                                An object containing the application's
                                conditions.
                              properties:
                                feature:
                                  description: >-
                                    The feature that the user must have access
                                    to in order to see the application in their
                                    cPanel *Home* interface.
                                  example: blockers
                                  type: string
                                if:
                                  description: >-
                                    cPanel variables that determine whether to
                                    display the

                                    item, if any exist.


                                    For example, `$isreseller` indicates that
                                    the item **only**

                                    displays for reseller accounts.


                                    For more information, read our

                                    [Guide to cPanel
                                    Variables](https://go.cpanel.net/guidetovariables)

                                    documentation.
                                  example: '!$isarchiveuser'
                                  type: string
                                module:
                                  description: >-
                                    The name of the module that provides the
                                    application.
                                  type: string
                              type: object
                            description:
                              description: The application's display name.
                              example: Email Filters
                              type: string
                            icon:
                              description: The application's icon information.
                              properties:
                                height:
                                  description: The application's icon's height, in pixels.
                                  example: 32
                                  minimum: 1
                                  type: integer
                                url:
                                  description: >-
                                    The file path or URL location of the
                                    application's icon.
                                  example: email_filters
                                  format: url-path
                                  type: string
                                width:
                                  description: The application's icon's width, in pixels.
                                  example: 35
                                  minimum: 1
                                  type: integer
                              type: object
                            implements:
                              description: >-
                                The module namespace for the specific
                                application.
                              example: Email_UserLevelFiltering
                              type: string
                            key:
                              description: The application's Appkey name.
                              example: email_filters
                              type: string
                            name:
                              description: The application's name.
                              example: Email Filters
                              type: string
                            order:
                              description: >-
                                The application's order in the `sitemap.json`
                                file. This value represents the application's
                                display order in cPanel's *Home* interface.
                              example: 4
                              minimum: 1
                              type: integer
                            terms:
                              description: Search keywords for the application.
                              example:
                                - email
                                - filter
                                - filters
                              items:
                                type: string
                            type:
                              description: |-
                                The application's type.

                                `item` is the only possible value.
                              enum:
                                - item
                              example: item
                              type: string
                            url:
                              description: >-
                                The file path or URL to the the application's
                                file.
                              example: mail/filters/userfilters.html
                              format: url-path
                              type: string
                          type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return app's info from sitemap.json
      tags:
        - Branding
        - Application Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Branding \
              get_information_for_applications \
              docroot='/usr/local/cpanel/base/webmail/jupiter'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Branding/get_information_for_applications?docroot=%2fusr%2flocal%2fcpanel%2fbase%2fwebmail%2fpaper_lantern
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Branding_get_information_for_applications.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Branding_get_information_for_applications.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Branding/,
                q/get_information_for_applications/,
                {
                    'docroot' => '/usr/local/cpanel/base/webmail/jupiter',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            Branding_get_information_for_applications.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Branding_get_information_for_applications.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Branding',
                'get_information_for_applications',
                array (
                    'docroot' => '/usr/local/cpanel/base/webmail/jupiter',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /CCS/add_delegate:
    get:
      description: >-
        This function delegates a user's calendar to another user.


        **Note:**


        You **must** install the [Calendar and Contacts
        Server](https://go.cpanel.net/CalendarAndContactsServer) cPanel plugin
        to access this API function.
      operationId: add_delegate
      parameters:
        - description: The user to whom you wish to delegate the calendar.
          in: query
          name: delegatee
          required: true
          schema:
            example: delegatee@cptest.test
            format: email
            type: string
        - description: The calendar's owner.
          in: query
          name: delegator
          required: true
          schema:
            example: delegator@cptest.test
            format: email
            type: string
        - description: >-
            Whether the delegatee will only have read-only access on the
            calendar.

            * `1` - Read-only access.

            * `0` - Full access.
          in: query
          name: readonly
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_delegate
                    type: string
                  module:
                    description: The name of the module called.
                    example: CCS
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add calendar delegation
      tags:
        - CCS
        - Calendar and Contacts Server
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CCS \
              add_delegate \
              delegator='delegator@cptest.test' \
              delegatee='delegatee@cptest.test'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CCS/add_delegate?delegator=delegator%40cptest.test&delegatee=delegatee%40cptest.test
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CCS_add_delegate.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CCS_add_delegate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CCS/,
                q/add_delegate/,
                {
                    'delegator' => 'delegator@cptest.test',
                    'delegatee' => 'delegatee@cptest.test',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CCS_add_delegate.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CCS_add_delegate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CCS',
                'add_delegate',
                array (
                    'delegator' => 'delegator@cptest.test',
                    'delegatee' => 'delegatee@cptest.test',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 90
      x-cpanel-minimum-compatible-version: 80
      x-cpanel-rpm: cpanel-ccs-calendarserver
      x-cpanel-rpm-version: 69
  /CCS/list_delegates:
    get:
      description: >-
        This function lists all [calendar
        delegates](https://docs.cpanel.net/cpanel/email/calendar-delegation/) on
        the cPanel account.


        **Note:**


        You **must** install the [Calendar and Contacts
        Server](https://go.cpanel.net/CalendarAndContactsServer) cPanel plugin
        to access this API function.
      operationId: list_delegates
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_delegates
                    type: string
                  module:
                    description: The name of the module called.
                    example: CCS
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contain Calendars and
                          Contacts Server calendar delegation information.
                        items:
                          properties:
                            delegatee:
                              description: The user with delegation rights.
                              example: delegatee@cptest.test
                              format: email
                              type: string
                            delegator:
                              description: The calendar's owner.
                              example: delegator@cptest.test
                              format: email
                              type: string
                            read_only:
                              description: >-
                                Whether the delegatee has read-only access on
                                the calendar.

                                * `1` - Read-only access.

                                * `0` - Full access.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                          type: object
                        nullable: true
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: List cPanel account's calendar delegates
      tags:
        - CCS
        - Calendar and Contacts Server
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CCS \
              list_delegates
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CCS/list_delegates
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CCS_list_delegates.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CCS_list_delegates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CCS/,
                q/list_delegates/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CCS_list_delegates.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CCS_list_delegates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CCS',
                'list_delegates'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 90
  /CCS/list_users:
    get:
      description: >-
        This function lists all calendar users on the cPanel account.


        **Note:**


        You **must** install the [Calendar and Contacts
        Server](https://go.cpanel.net/CalendarAndContactsServer) cPanel plugin
        to access this API function.
      operationId: list_users
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_users
                    type: string
                  module:
                    description: The name of the module called.
                    example: CCS
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: >-
                            The user account's [universally unique
                            identifier](https://en.wikipedia.org/wiki/Universally_unique_identifier)
                            (UUID). The user account's name is the return's
                            name.
                        example:
                          user1@example.com: 0882362A-0B98-11E8-BAF5-D988266709C1
                          user2@example.com: 96F1EB2F-A501-11EA-A3EF-A553B2E4FFA8
                          user3@example.com: 195C8A51-E1B3-11E6-8715-F54FA4E00DDD
                          user4@example.com: 028F4AB1-0F1A-11E7-AEC7-E08FECEC8036
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: List cPanel account's calendar users
      tags:
        - CCS
        - Calendar and Contacts Server
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CCS \
              list_users
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CCS/list_users
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CCS_list_users.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CCS_list_users.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CCS/,
                q/list_users/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CCS_list_users.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CCS_list_users.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CCS',
                'list_users'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 90
  /CCS/remove_delegate:
    get:
      description: >-
        This function removes a delegate from another user's calendar.


        **Note:**


        You **must** install the [Calendar and Contacts
        Server](https://go.cpanel.net/CalendarAndContactsServer) cPanel plugin
        to access this API function.
      operationId: remove_delegate
      parameters:
        - description: The user from whom you wish to remove delegation rights.
          in: query
          name: delegatee
          required: true
          schema:
            example: user2@example.com
            format: email
            type: string
        - description: The calendar's owner.
          in: query
          name: delegator
          required: true
          schema:
            example: user1@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_delegate
                    type: string
                  module:
                    description: The name of the module called.
                    example: CCS
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove calendar delegation
      tags:
        - CCS
        - Calendar and Contacts Server
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CCS \
              remove_delegate \
              delegator='user1@example.com' \
              delegatee='user2@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CCS/remove_delegate?delegator=user1%40example.com&delegatee=user2%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CCS_remove_delegate.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CCS_remove_delegate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CCS/,
                q/remove_delegate/,
                {
                    'delegator' => 'user1@example.com',
                    'delegatee' => 'user2@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CCS_remove_delegate.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CCS_remove_delegate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CCS',
                'remove_delegate',
                array (
                    'delegator' => 'user1@example.com',
                    'delegatee' => 'user2@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 90
  /CCS/update_delegate:
    get:
      description: >-
        This function updates the delegation of a user's calendar to another
        user.


        **Note:**


        You **must** install the [Calendar and Contacts
        Server](https://go.cpanel.net/CalendarAndContactsServer) cPanel plugin
        to access this API function.
      operationId: update_delegate
      parameters:
        - description: The user to whom you delegated the calendar.
          in: query
          name: delegatee
          required: true
          schema:
            example: user2@example.com
            format: email
            type: string
        - description: The calendar's owner.
          in: query
          name: delegator
          required: true
          schema:
            example: user1@example.com
            format: email
            type: string
        - description: >-
            Whether the delegatee will only have read-only access on the
            calendar.

            * `1` - Read-only access.

            * `0` - Full access.
          in: query
          name: readonly
          required: false
          schema:
            default: 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update_delegate
                    type: string
                  module:
                    description: The name of the module called.
                    example: CCS
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update calendar delegation
      tags:
        - CCS
        - Calendar and Contacts Server
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CCS \
              update_delegate \
              delegator='user1@example.com' \
              delegatee='user2@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CCS/update_delegate?delegator=user1%40example.com&delegatee=user2%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CCS_update_delegate.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CCS_update_delegate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CCS/,
                q/update_delegate/,
                {
                    'delegator' => 'user1@example.com',
                    'delegatee' => 'user2@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CCS_update_delegate.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CCS_update_delegate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CCS',
                'update_delegate',
                array (
                    'delegator' => 'user1@example.com',
                    'delegatee' => 'user2@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 90
  /CPDAVD/add_delegate:
    get:
      description: This function adds a share for the specified calendar.
      operationId: CPDAVD_add_delegate
      parameters:
        - description: The calendar to share.
          in: query
          name: calendar
          required: true
          schema:
            example: calendar
            type: string
        - description: The person to whom you will share the calendar.
          in: query
          name: delegatee
          required: true
          schema:
            example: second@example.com
            type: string
        - description: The owner of the calendar, who wishes to share it to another user.
          in: query
          name: delegator
          required: true
          schema:
            example: first@example.com
            type: string
        - description: If set, the provided access will be read-only.
          in: query
          name: readonly
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_delegate
                    type: string
                  module:
                    description: The name of the module called.
                    example: CPDAVD
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          shared:
                            description: |-
                              Whether the sharing succeeded.
                              * `1` — Shared.
                              * `0` — **Not** shared.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Share a calendar
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CPDAVD \
              add_delegate \
              delegator='first@example.com' \
              delegatee='second@example.com' \
              calendar='calendar'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CPDAVD/add_delegate?delegator=first%40example.com&delegatee=second%40example.com&calendar=calendar
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CPDAVD_add_delegate.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CPDAVD_add_delegate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CPDAVD/,
                q/add_delegate/,
                {
                    'delegator' => 'first@example.com',
                    'delegatee' => 'second@example.com',
                    'calendar' => 'calendar',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CPDAVD_add_delegate.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CPDAVD_add_delegate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CPDAVD',
                'add_delegate',
                array (
                    'delegator' => 'first@example.com',
                    'delegatee' => 'second@example.com',
                    'calendar' => 'calendar',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 120
  /CPDAVD/list_delegates:
    get:
      description: >-
        This function lists the sharing configuration in calendars for this
        account.
      operationId: CPDAVD_list_delegates
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_delegates
                    type: string
                  module:
                    description: The name of the module called.
                    example: CPDAVD
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            calendar:
                              description: The calendar id.
                              example: calendar
                              type: string
                            calname:
                              description: The name of the calendar.
                              example: cPanel CalDAV Calendar
                              type: string
                            delegatee:
                              description: >-
                                The person to whom the owner of the calendar
                                shared it.
                              example: second@example.com
                              type: string
                            delegator:
                              description: The owner of the calendar.
                              example: first@example.com
                              type: string
                            readonly:
                              description: >-
                                If set to `1`, the `delegatee` only has read
                                access to the calendar.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: List calendar sharing.
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CPDAVD \
              list_delegates
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CPDAVD/list_delegates
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CPDAVD_list_delegates.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CPDAVD_list_delegates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CPDAVD/,
                q/list_delegates/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CPDAVD_list_delegates.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CPDAVD_list_delegates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CPDAVD',
                'list_delegates'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 120
  /CPDAVD/list_users:
    get:
      description: >-
        This function lists the users that are available for use with CalDAV and
        CardDAV
      operationId: CPDAVD_list_users
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_users
                    type: string
                  module:
                    description: The name of the module called.
                    example: CPDAVD
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          additionalProperties:
                            additionalProperties:
                              description: The name of this property is the collection id.
                              properties:
                                calendar-color:
                                  description: >-
                                    For calendars only: The color to use for
                                    calendar events.
                                  example: '#ee5555'
                                  type: string
                                description:
                                  description: The description of the collection.
                                  type: string
                                displayname:
                                  description: The name of the collection.
                                  type: string
                                protected:
                                  description: >-
                                    If this value is `1`, then the collection
                                    cannot be deleted through the API.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                type:
                                  description: The type of the collection.
                                  enum:
                                    - VADDRESSBOOK
                                    - VCALENDAR
                                    - VTODO
                                  example: VCALENDAR
                                  type: string
                              type: object
                            description: The name of this property is the principal name.
                            type: object
                          example:
                            someone@example.com:
                              addressbook:
                                description: >-
                                  Default Address Book automatically created for
                                  your account.
                                displayname: cPanel CardDAV Address Book
                                protected: 1
                                type: VADDRESSBOOK
                              calendar:
                                calendar-color: '#ff6c2c'
                                description: >-
                                  Default Calendar automatically created for
                                  your account.
                                displayname: cPanel CalDAV Calendar
                                protected: 1
                                type: VCALENDAR
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update calendar sharing
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CPDAVD \
              list_users
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CPDAVD/list_users
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CPDAVD_list_users.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CPDAVD_list_users.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CPDAVD/,
                q/list_users/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CPDAVD_list_users.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CPDAVD_list_users.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CPDAVD',
                'list_users'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 120
  /CPDAVD/manage_collection:
    get:
      description: This function creates, updates, or deletes a collection.
      operationId: CPDAVD_manage_collection
      parameters:
        - description: The owner of the calendar.
          in: query
          name: account
          required: true
          schema:
            example: user@example.com
            type: string
        - description: The action to perform (create, update, or delete a collection).
          in: query
          name: action
          required: true
          schema:
            enum:
              - create
              - update
              - delete
            example: delete
            type: string
        - description: The collection type.
          in: query
          name: collection_type
          required: true
          schema:
            enum:
              - calendar
              - tasks
              - addressbook
            example: calendar
            type: string
        - description: The path to the collection.
          in: query
          name: path
          required: true
          schema:
            example: /calendars/user@example.com/mycalendar
            type: string
        - description: The color of the calendar, if applicable.
          in: query
          name: calendar-color
          required: false
          schema:
            example: '#ee5555'
            type: string
        - description: The description of the collection.
          in: query
          name: description
          schema:
            example: This is my calendar.
            type: string
        - description: The name of the collection. Required when creating a collection.
          in: query
          name: name
          schema:
            example: My Calendar
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: manage_collection
                    type: string
                  module:
                    description: The name of the module called.
                    example: CPDAVD
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          shared:
                            description: |-
                              Whether the operation succeeded.
                              * `1` — Operation succeeded.
                              * `0` — Operation did **not** succeed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Perform an operation on a calendar, task list or address book.
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CPDAVD \
              manage_collection \
              account='user@example.com' \
              action='delete' \
              path='/calendars/user@example.com/mycalendar' \
              collection_type='calendar'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CPDAVD/manage_collection?account=user%40example.com&action=delete&path=%2fcalendars%2fuser%40example.com%2fmycalendar&collection_type=calendar
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CPDAVD_manage_collection.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CPDAVD_manage_collection.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CPDAVD/,
                q/manage_collection/,
                {
                    'account' => 'user@example.com',
                    'action' => 'delete',
                    'path' => '/calendars/user@example.com/mycalendar',
                    'collection_type' => 'calendar',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CPDAVD_manage_collection.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CPDAVD_manage_collection.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CPDAVD',
                'manage_collection',
                array (
                    'account' => 'user@example.com',
                    'action' => 'delete',
                    'path' => '/calendars/user@example.com/mycalendar',
                    'collection_type' => 'calendar',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 120
  /CPDAVD/remove_delegate:
    get:
      description: This function removes a share for the specified calendar.
      operationId: CPDAVD_remove_delegate
      parameters:
        - description: The calendar that was shared.
          in: query
          name: calendar
          required: true
          schema:
            example: calendar
            type: string
        - description: The person to whom the calendar was shared.
          in: query
          name: delegatee
          required: true
          schema:
            example: second@example.com
            type: string
        - description: The owner of the calendar, who wishes to remove the sharing.
          in: query
          name: delegator
          required: true
          schema:
            example: first@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_delegate
                    type: string
                  module:
                    description: The name of the module called.
                    example: CPDAVD
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          shared:
                            description: |-
                              Whether the sharing removal succeeded.
                              * `1` — Removed.
                              * `0` — **Not** removed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove a share.
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CPDAVD \
              remove_delegate \
              delegator='first@example.com' \
              delegatee='second@example.com' \
              calendar='calendar'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CPDAVD/remove_delegate?delegator=first%40example.com&delegatee=second%40example.com&calendar=calendar
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CPDAVD_remove_delegate.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CPDAVD_remove_delegate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CPDAVD/,
                q/remove_delegate/,
                {
                    'delegator' => 'first@example.com',
                    'delegatee' => 'second@example.com',
                    'calendar' => 'calendar',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CPDAVD_remove_delegate.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CPDAVD_remove_delegate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CPDAVD',
                'remove_delegate',
                array (
                    'delegator' => 'first@example.com',
                    'delegatee' => 'second@example.com',
                    'calendar' => 'calendar',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 120
  /CPDAVD/update_delegate:
    get:
      description: This function updates a share for the specified calendar.
      operationId: CPDAVD_update_delegate
      parameters:
        - description: The calendar to share.
          in: query
          name: calendar
          required: true
          schema:
            example: calendar
            type: string
        - description: The person to whom you will share the calendar.
          in: query
          name: delegatee
          required: true
          schema:
            example: second@example.com
            type: string
        - description: >-
            The owner of the calendar, who wishes to change the details of the
            sharing.
          in: query
          name: delegator
          required: true
          schema:
            example: first@example.com
            type: string
        - description: If set, the provided access will be read-only.
          in: query
          name: readonly
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update_delegate
                    type: string
                  module:
                    description: The name of the module called.
                    example: CPDAVD
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          shared:
                            description: |-
                              Whether the sharing succeeded.
                              * `1` — Shared.
                              * `0` — **Not** shared.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update calendar sharing.
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CPDAVD \
              update_delegate \
              delegator='first@example.com' \
              delegatee='second@example.com' \
              calendar='calendar'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CPDAVD/update_delegate?delegator=first%40example.com&delegatee=second%40example.com&calendar=calendar
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CPDAVD_update_delegate.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CPDAVD_update_delegate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CPDAVD/,
                q/update_delegate/,
                {
                    'delegator' => 'first@example.com',
                    'delegatee' => 'second@example.com',
                    'calendar' => 'calendar',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CPDAVD_update_delegate.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CPDAVD_update_delegate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CPDAVD',
                'update_delegate',
                array (
                    'delegator' => 'first@example.com',
                    'delegatee' => 'second@example.com',
                    'calendar' => 'calendar',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 120
  /CSVImport/doimport:
    get:
      description: This function imports email accounts from an already uploaded CSV file.
      operationId: CSVImport::doimport
      parameters:
        - description: The domain under which to add the email accounts.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The unique ID of the import operation. The cPanel API 2
            CSVImport::uploadimport function generates this ID and stores it in
            the `CPVAR` attribute named `csvimportid`.
          in: query
          name: id
          required: true
          schema:
            example: Leq58oid3sF3Moye3_YbJGqoMvCb7M4j
            type: string
        - description: |-
            The type of email address to add.

            * `email` — A regular email account.
            * `fwd` — A forwarder.
          in: query
          name: type
          required: true
          schema:
            enum:
              - email
              - fwd
            example: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: doimport
                    type: string
                  module:
                    description: The name of the module called.
                    example: CSVImport
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          results:
                            description: The results for each attempted add operation.
                            example:
                              - email: j.doe@example.com
                                reason: OK
                                status: 1
                                type: email
                              - email: jdoe@example.com
                                reason: The account jdoe@example.com already exists!
                                status: 0
                                type: email
                            items:
                              properties:
                                email:
                                  description: The email address or forwarder.
                                  example: j.doe@example.com
                                  format: email
                                  type: string
                                fwd:
                                  description: >-
                                    The destination of the forwarder (if
                                    applicable).
                                  example: null
                                  format: email
                                  nullable: true
                                  type: string
                                reason:
                                  description: >-
                                    The explanation of the outcome for each
                                    operation.
                                  type: string
                                status:
                                  description: |-
                                    The outcome of each operation.

                                    * `1` — Success.
                                    * `0` — Failed.
                                  enum:
                                    - 0
                                    - 1
                                  type: integer
                                type:
                                  description: |-
                                    The type of email address.

                                    * `email` — A regular email account.
                                    * `fwd` — A forwarder.
                                  enum:
                                    - email
                                    - fwd
                                  example: email
                                  type: string
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example:
                          - >-
                            1 error(s) were encountered while importing
                            accounts.
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success

                          * `0` — Failed: One or more errors occurred. For
                          errors related to individual account add operations,
                          see the `reason` field in each record from `results`
                          for more information.
                        enum:
                          - 0
                          - 1
                        example: 0
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Import email accounts from CSV file
      tags:
        - CSVImport
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CSVImport \
              doimport \
              id='Leq58oid3sF3Moye3_YbJGqoMvCb7M4j' \
              type='email' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CSVImport/doimport?id=Leq58oid3sF3Moye3_YbJGqoMvCb7M4j&type=email&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CSVImport_doimport.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CSVImport_doimport.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CSVImport/,
                q/doimport/,
                {
                    'id' => 'Leq58oid3sF3Moye3_YbJGqoMvCb7M4j',
                    'type' => 'email',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CSVImport_doimport.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CSVImport_doimport.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CSVImport',
                'doimport',
                array (
                    'id' => 'Leq58oid3sF3Moye3_YbJGqoMvCb7M4j',
                    'type' => 'email',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /CacheBuster/read:
    get:
      description: >-
        This function returns the current `CacheBuster` id. The system uses this
        ID to force the browser to fetch a new resource when that resource
        already exists in the web browser cache. This is useful when an
        application has updated the resource on the server. You should append
        this ID to the end of the url in the query-string. For example, if you
        are accessing a url like:


        `https://example.com/styled/basic/sprites/icon_spritemap.css`

         To force the browser to fetch the updated version, you would append the following:

         `https://example.com/styled/basic/sprites/icon_spritemap.css?<CacheBusterID>`

         **Note**

         The application that updates the resource at this url on the server **must** call the `CacheBuster::update` function when it updates the resource to signify that update.
      operationId: CacheBuster-read
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: read
                    type: string
                  module:
                    description: The name of the module called.
                    example: CacheBuster
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cache_id:
                            description: >-
                              An eight-digit random integer that the system uses
                              to work around a browser's caching mechanism.
                            example: 11381138
                            maximum: 99999999
                            minimum: 10000000
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return web browser cached file override ID
      tags:
        - CacheBuster
        - Browser Cache Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CacheBuster \
              read
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CacheBuster/read
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CacheBuster_read.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CacheBuster_read.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CacheBuster/,
                q/read/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CacheBuster_read.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CacheBuster_read.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CacheBuster',
                'read'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /CacheBuster/update:
    get:
      description: >-
        This function generates a random integer (the CacheBuster ID). Use this
        ID to work with and around a browser's caching mechanism.
      operationId: update
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update
                    type: string
                  module:
                    description: The name of the module called.
                    example: CacheBuster
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cache_id:
                            description: >-
                              random integer that the system uses to work with
                              and around a browser's caching mechanism. An
                              eight-digit integer.
                            example: 11381138
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create web browser cached file override ID
      tags:
        - CacheBuster
        - Browser Cache Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              CacheBuster \
              update
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/CacheBuster/update
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file CacheBuster_update.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/CacheBuster_update.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/CacheBuster/,
                q/update/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file CacheBuster_update.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/CacheBuster_update.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'CacheBuster',
                'update'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /Chkservd/get_exim_ports:
    get:
      description: This function lists the ports on which Exim listens.
      operationId: get_exim_ports
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_exim_ports
                    type: string
                  module:
                    description: The name of the module called.
                    example: Chkservd
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          ports:
                            description: An array of port numbers on which Exim listens.
                            items:
                              example: 25
                              maximum: 65535
                              minimum: 1
                              type: integer
                            type: array
                            uniqueItems: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return outgoing (SMTP) mail port
      tags:
        - Chkservd
        - Mail Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Chkservd \
              get_exim_ports
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Chkservd/get_exim_ports
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Chkservd_get_exim_ports.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Chkservd_get_exim_ports.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Chkservd/,
                q/get_exim_ports/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Chkservd_get_exim_ports.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Chkservd_get_exim_ports.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Chkservd',
                'get_exim_ports'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Chkservd/get_exim_ports_ssl:
    get:
      description: This function retrieves Exim's SSL port.
      operationId: get_exim_ports_ssl
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_exim_ports_ssl
                    type: string
                  module:
                    description: The name of the module called.
                    example: Chkservd
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          ports:
                            description: >-
                              An array of port numbers on which Exim listens for
                              SSL/TLS connections.
                            items:
                              example: 465
                              maximum: 65535
                              minimum: 0
                              type: integer
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return outgoing mail (SMTP) SSL-secured port
      tags:
        - Chkservd
        - Mail Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Chkservd \
              get_exim_ports_ssl
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Chkservd/get_exim_ports_ssl
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Chkservd_get_exim_ports_ssl.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Chkservd_get_exim_ports_ssl.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Chkservd/,
                q/get_exim_ports_ssl/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Chkservd_get_exim_ports_ssl.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Chkservd_get_exim_ports_ssl.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Chkservd',
                'get_exim_ports_ssl'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Chrome/get_dom:
    get:
      description: >-
        This function returns header and footer HTML. You can use this HTML to
        create a page with the same visual appearance as your cPanel theme.
      operationId: get_dom
      parameters:
        - description: The title of the page to wrap in the theme's headers and footers.
          in: query
          name: page_title
          required: true
          schema:
            example: Test
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_dom
                    type: string
                  module:
                    description: The name of the module called.
                    example: Chrome
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          footer:
                            description: The pages' footer.
                            example: >+

                              <!-- The Footer HTML of the user's assigned theme
                              -->

                              </html>

                            type: string
                          header:
                            description: The pages' header.
                            example: >-


                              <!DOCTYPE html>


                              <html lang="en" dir="ltr">

                              <!-- The Header HTML of the user's assigned theme
                              -->
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel theme header and footer HTML
      tags:
        - Chrome
        - Brand Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Chrome \
              get_dom \
              page_title='Test'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Chrome/get_dom?page_title=Test
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Chrome_get_dom.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Chrome_get_dom.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Chrome/,
                q/get_dom/,
                {
                    'page_title' => 'Test',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Chrome_get_dom.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Chrome_get_dom.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Chrome',
                'get_dom',
                array (
                    'page_title' => 'Test',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /ClamScanner/check_disinfection_status:
    get:
      description: >-
        This function checks the status of the previously queued disinfection

        of infected files.


        **Note:**


        You must run the APIs in this order:


        1. Run
        [`ClamScanner::start_scan`](https://go.cpanel.net/ClamScanner-start-scan)
        to start the virus scan.

        2. Run
        [`ClamScanner::get_scan_status`](https://go.cpanel.net/ClamScanner-get-scan-status)
        in a loop until the scan is finished.

        3. Run
        [`ClamScanner::list_infected_files`](https://go.cpanel.net/ClamScanner-list-infected-files)
        to get a report of the complete list of infected files.

        4. Decide how you want to handle each infected file.

        5. Run
        [`ClamScanner::disinfect_files`](https://go.cpanel.net/ClamScanner-disinfect-files)
        to queue the disinfection of the files.

        6. Run
        [`ClamScanner::check_disinfection_status`](https://go.cpanel.net/ClamScanner-check-disinfection-status)
        in a loop until you get a done status.


        If you want to display the progress, you can render the
        `ClamScanner::check_disinfection_status` returned
        'result{data}{details}' array where the `type` is `step`.


        Each `step` record indicates the action taken on a specific file in the
        set being processed.
      operationId: ClamScanner::check_disinfection_status
      parameters:
        - description: >-
            The unique `id` of the message you last received from this same log.


            The API will return only the records after the specified `last_id`.


            If this parameter is not provided, the entire log is returned.


            **Note:**


            For improved performance, we recommend applications include the last
            record ID (last_id)

            from a previous call to this API, so only messages since the
            previous API call are returned.
          in: query
          name: last_id
          schema:
            example: 10
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: check_disinfection_status
                    type: string
                  module:
                    description: The name of the module called.
                    example: ClamScanner
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          details:
                            description: >-
                              The list of events recorded in the log. If you
                              pass the `last_id` parameter, only records in the
                              log after that id are returned.
                            items:
                              oneOf:
                                - properties:
                                    file:
                                      description: The absolute path to the file.
                                      example: /home/user/virus
                                      type: string
                                    id:
                                      description: The task processing order.
                                      example: 2
                                      type: number
                                    message:
                                      description: >-
                                        Optional message that may include more
                                        information about errors.
                                      type: string
                                    state:
                                      description: >-
                                        The state of the step. It will be one of
                                        the following:


                                        * `deleted` - The file was deleted.

                                        * `error` - An error occurred while
                                        processing the file.

                                        * `mailbox-cleansed` - The mailbox was
                                        clear of viruses.

                                        * `no-action` - No action was taken on
                                        the file.

                                        * `quarantined` - The file was
                                        quarantined.
                                      enum:
                                        - deleted
                                        - error
                                        - mailbox-cleansed
                                        - no-action
                                        - quarantined
                                      example: deleted
                                      type: string
                                    type:
                                      description: >-
                                        * `step` - Record about a single file
                                        being processes.
                                      enum:
                                        - step
                                      type: string
                                  required:
                                    - type
                                    - state
                                  type: object
                                - properties:
                                    id:
                                      description: The task processing order.
                                      example: 2
                                      type: number
                                    message:
                                      description: >-
                                        Optional message that may include more
                                        information about errors and warnings.
                                      type: string
                                    state:
                                      description: >-
                                        The state of the issue. It will be one
                                        of the following:


                                        * `error` - An error occurred while
                                        starting or finishing the disinfection.

                                        * `warning` - A non-cricitcal problem
                                        occurred while starting or finishing the
                                        disinfection.
                                      enum:
                                        - error
                                        - warning
                                      example: warning
                                      type: string
                                    type:
                                      description: >-
                                        * `issue` - Record that the disinfection
                                        is complete for all files indicated.
                                      enum:
                                        - issue
                                      type: string
                                  required:
                                    - type
                                    - state
                                  type: object
                                - properties:
                                    id:
                                      description: The task processing order.
                                      example: 2
                                      type: number
                                    message:
                                      description: >-
                                        Optional message that may include more
                                        information about errors.
                                      type: string
                                    state:
                                      description: >-
                                        The state of the step. It will be one of
                                        the following:


                                        * `error` - An error occurred while
                                        processing the file.

                                        * `info` - The message is information
                                        only.

                                        * `success` - The disinfection was
                                        successful.
                                      enum:
                                        - error
                                        - info
                                        - success
                                      example: success
                                      type: string
                                    type:
                                      description: >-
                                        * `done` - Record that the disinfection
                                        is complete for all files indicated.
                                      enum:
                                        - done
                                      type: string
                                  required:
                                    - type
                                  type: object
                            type: array
                          log:
                            description: >-
                              Path to the disinfection log file. The log file
                              will contain a list of JSON objects one per line. 
                              If the last line includes `"type":"done"`, the
                              file disinfection is complete.
                            example: /home/user/.clamavconnector.disinfection.log
                            type: string
                          status:
                            description: |-
                              * `done` - The disinfection is finished.
                              * `none` - There is no disinfection scheduled.
                              * `queued` - The disinfection is queued.
                              * `running` - The disinfection is in progress.
                            enum:
                              - done
                              - queued
                              - running
                            example: done
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Request disinfection process status
      tags:
        - ClamScanner
        - Antivirus Protection (ClamAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ClamScanner \
              check_disinfection_status
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ClamScanner/check_disinfection_status
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ClamScanner_check_disinfection_status.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ClamScanner_check_disinfection_status.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ClamScanner/,
                q/check_disinfection_status/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ClamScanner_check_disinfection_status.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ClamScanner_check_disinfection_status.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ClamScanner',
                'check_disinfection_status'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 94
  /ClamScanner/disinfect_files:
    post:
      description: >-
        This function applies the disinfection option selected by the user

        for each infected file.


        **Note:**


        You must run the APIs in this order:


        1. Run
        [`ClamScanner::start_scan`](https://go.cpanel.net/ClamScanner-start-scan)
        to start the virus scan.

        2. Run
        [`ClamScanner::get_scan_status`](https://go.cpanel.net/ClamScanner-get-scan-status)
        in a loop until the scan is finished.

        3. Run
        [`ClamScanner::list_infected_files`](https://go.cpanel.net/ClamScanner-list-infected-files)
        to get a report of the complete list of infected files.

        4. Decide how you want to handle each infected file.

        5. Run
        [`ClamScanner::disinfect_files`](https://go.cpanel.net/ClamScanner-disinfect-files)
        to queue the disinfection of the files.

        6. Run
        [`ClamScanner::check_disinfection_status`](https://go.cpanel.net/ClamScanner-check-disinfection-status)
        in a loop until you get a done status.
      operationId: disinfect_files
      requestBody:
        content:
          application/json:
            schema:
              properties:
                actions:
                  additionalProperties:
                    description: >-
                      The name of the property is a path to the file. The path
                      may be either a full path to the file or a users home
                      directory relative path to the file.


                      The value of the property is on of the following:


                      * `cleanse_mailbox` — Cleanse the specified mailbox.

                      * `delete` — Delete the file.

                      * `quarantine` — Move the file to the quarantine
                      directory.

                      * `ignore` - Ignore the file.


                      **Note**


                      Only include files that the scanner identified as
                      containing a virus. All other file paths passed will be
                      ignored.
                    enum:
                      - cleanse_mailbox
                      - delete
                      - quarantine
                      - ignore
                    type: string
                  description: >-
                    The user provides the actions to perform on each specific
                    infected file found in the scan.
                  example:
                    home/unsure: ignore
                    home/virus1: delete
                    home/virus2: quarantine
                  type: object
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disinfect_files
                    type: string
                  module:
                    description: The name of the module called.
                    example: ClamScanner
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          log:
                            description: >-
                              Path to the disinfection log file. The log file
                              will contain a list of JSON objects one per line.


                              If the last line is:


                              `{ "status": "done" }`


                              the requested files with viruses have be handled
                              as requested.  Use the
                              /ClamScanner/check_disinfection_status

                              API to check the status of a running or finished
                              disinfection.
                            example: /home/user/.clamavconnector.disinfection.log
                            type: string
                          task_id:
                            description: The Task Queue system's task ID number.
                            example: 00000000/5a9ec8dd4c345d
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Start disinfecting files with viruses
      tags:
        - ClamScanner
        - Antivirus Protection (ClamAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            echo
            '{"home/unsure":"ignore","home/virus1":"delete","home/virus2":"quarantine"}'
            | uapi --user=username --input=json --output=jsonpretty ClamScanner
            disinfect_files
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: >-
            POST /cpsess##########/execute/ClamScanner/disinfect_files HTTP/1.1

            Host: example.com:2083

            Cookie: ###################################

            Content-Type: application/json

            Content-Length: 74


            {"home/unsure":"ignore","home/virus1":"delete","home/virus2":"quarantine"}
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 94
  /ClamScanner/get_scan_paths:
    get:
      description: >-
        This function gets the available local paths that a cPanel account is
        permitted to scan.


        **Note**:


        The system determines the available scan types based on what the system
        administrator has set in WHM's [Configure
        ClamAV®](https://go.cpanel.net/configureclamavscanner) page.


        **Note**:


        You must run the APIs in this order:


        1. Run
        [`ClamScanner::start_scan`](https://go.cpanel.net/ClamScanner-start-scan)
        to start the virus scan.

        2. Run
        [`ClamScanner::get_scan_status`](https://go.cpanel.net/ClamScanner-get-scan-status)
        in a loop until the scan is finished.

        3. Run
        [`ClamScanner::list_infected_files`](https://go.cpanel.net/ClamScanner-list-infected-files)
        to get a report of the complete list of infected files.

        4. Decide how you want to handle each infected file.

        5. Run
        [`ClamScanner::disinfect_files`](https://go.cpanel.net/ClamScanner-disinfect-files)
        to queue the disinfection of the files.

        6. Run
        [`ClamScanner::check_disinfection_status`](https://go.cpanel.net/ClamScanner-check-disinfection-status)
        in a loop until you get a done status.
      operationId: ClamScanner::get_scan_paths
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_scan_paths
                    type: string
                  module:
                    description: The name of the module called.
                    example: ClamScanner
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          id:
                            description: >-
                              The type of path

                              * `home` — The cPanel account's entire home
                              directory.

                              * `mail` — The cPanel account's email directory.

                              * `public_html` — The cPanel account's web
                              directory.

                              * `public_ftp` — The cPanel account's FTP
                              directory.
                            enum:
                              - home
                              - mail
                              - public_html
                              - public_ftp
                            example: home
                            type: string
                          message:
                            description: Short description of the path
                            example: Scan Entire Home Directory
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return virus scan types
      tags:
        - ClamScanner
        - Antivirus Protection (ClamAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ClamScanner \
              get_scan_paths
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ClamScanner/get_scan_paths
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ClamScanner_get_scan_paths.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ClamScanner_get_scan_paths.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ClamScanner/,
                q/get_scan_paths/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ClamScanner_get_scan_paths.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ClamScanner_get_scan_paths.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ClamScanner',
                'get_scan_paths'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /ClamScanner/get_scan_status:
    get:
      description: >-
        This function gets the status of a ClamAV® scan on a directory.


        **Note**:


        You must run the APIs in this order:


        1. Run
        [`ClamScanner::start_scan`](https://go.cpanel.net/ClamScanner-start-scan)
        to start the virus scan.

        2. Run
        [`ClamScanner::get_scan_status`](https://go.cpanel.net/ClamScanner-get-scan-status)
        in a loop until the scan is finished.

        3. Run
        [`ClamScanner::list_infected_files`](https://go.cpanel.net/ClamScanner-list-infected-files)
        to get a report of the complete list of infected files.

        4. Decide how you want to handle each infected file.

        5. Run
        [`ClamScanner::disinfect_files`](https://go.cpanel.net/ClamScanner-disinfect-files)
        to queue the disinfection of the files.

        6. Run
        [`ClamScanner::check_disinfection_status`](https://go.cpanel.net/ClamScanner-check-disinfection-status)
        in a loop until you get a done status.
      operationId: ClamScanner::get_scan_status
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_scan_status
                    type: string
                  module:
                    description: The name of the module called.
                    example: ClamScanner
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          current_file:
                            description: The current file being scanned.
                            example: /home/username/afilename.txt
                            type: string
                          infected_files:
                            description: List of files scanned and found to be infected.
                            example:
                              - /home/username/afile/witha/virus.txt
                              - /home/username/we/gotcha.exe
                            type: array
                          scan_complete:
                            description: |-
                              Whether the last scan has completed.
                              * `1` - scan has completed.
                              * `0` - scan has **not** completed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          scanned_file_count:
                            description: The number of files already scanned.
                            example: 135
                            minimum: 0
                            type: integer
                          scanned_file_size:
                            description: The number of bytes of data scanned.
                            example: 6022
                            minimum: 0
                            type: integer
                          time_started:
                            description: >-
                              The epoch timestamp of the beginning of the last
                              scan.
                            example: '1608593571'
                            minimum: 0
                            type: string
                          total_file_count:
                            description: The total number of files found to scan.
                            example: 135
                            minimum: 0
                            type: integer
                          total_file_size_MiB:
                            description: >-
                              The total number of megabytes of data found to
                              scan.
                            example: 3640222
                            minimum: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Request virus scan status
      tags:
        - ClamScanner
        - Antivirus Protection (ClamAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ClamScanner \
              get_scan_status
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ClamScanner/get_scan_status
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ClamScanner_get_scan_status.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ClamScanner_get_scan_status.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ClamScanner/,
                q/get_scan_status/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ClamScanner_get_scan_status.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ClamScanner_get_scan_status.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ClamScanner',
                'get_scan_status'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /ClamScanner/list_infected_files:
    get:
      description: >-
        This function lists infected files from a ClamAV® virus scan.


        **Note**:


        You must run the APIs in this order:


        1. Run
        [`ClamScanner::start_scan`](https://go.cpanel.net/ClamScanner-start-scan)
        to start the virus scan.

        2. Run
        [`ClamScanner::get_scan_status`](https://go.cpanel.net/ClamScanner-get-scan-status)
        in a loop until the scan is finished.

        3. Run
        [`ClamScanner::list_infected_files`](https://go.cpanel.net/ClamScanner-list-infected-files)
        to get a report of the complete list of infected files.

        4. Decide how you want to handle each infected file.

        5. Run
        [`ClamScanner::disinfect_files`](https://go.cpanel.net/ClamScanner-disinfect-files)
        to queue the disinfection of the files.

        6. Run
        [`ClamScanner::check_disinfection_status`](https://go.cpanel.net/ClamScanner-check-disinfection-status)
        in a loop until you get a done status.
      operationId: ClamScanner::list_infected_files
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_infected_files
                    type: string
                  module:
                    description: The name of the module called.
                    example: ClamScanner
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            file:
                              description: >-
                                An absolute path to the infected file on the
                                system.
                              example: /home/username/infected_file.txt
                              format: path
                              type: string
                            virus_type:
                              description: A virus type.
                              example: Eicar-Signature
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return infected file list
      tags:
        - ClamScanner
        - Antivirus Protection (ClamAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ClamScanner \
              list_infected_files
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ClamScanner/list_infected_files
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ClamScanner_list_infected_files.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ClamScanner_list_infected_files.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ClamScanner/,
                q/list_infected_files/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ClamScanner_list_infected_files.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ClamScanner_list_infected_files.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ClamScanner',
                'list_infected_files'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /ClamScanner/start_scan:
    get:
      description: >-
        This function starts a ClamAV® scan on a directory.


        **Note**:


        You must run the APIs in this order:


        1. Run
        [`ClamScanner::start_scan`](https://go.cpanel.net/ClamScanner-start-scan)
        to start the virus scan.

        2. Run
        [`ClamScanner::get_scan_status`](https://go.cpanel.net/ClamScanner-get-scan-status)
        in a loop until the scan is finished.

        3. Run
        [`ClamScanner::list_infected_files`](https://go.cpanel.net/ClamScanner-list-infected-files)
        to get a report of the complete list of infected files.

        4. Decide how you want to handle each infected file.

        5. Run
        [`ClamScanner::disinfect_files`](https://go.cpanel.net/ClamScanner-disinfect-files)
        to queue the disinfection of the files.

        6. Run
        [`ClamScanner::check_disinfection_status`](https://go.cpanel.net/ClamScanner-check-disinfection-status)
        in a loop until you get a done status.
      operationId: ClamScanner::start_scan
      parameters:
        - description: |-
            The type of directory to scan.

            * `home` — User's entire home directory
            * `mail` — User's email directory
            * `public_html` — User's web directory
            * `public_ftp` — User's ftp directory
          in: query
          name: scan_type
          required: true
          schema:
            enum:
              - home
              - mail
              - public_html
              - public_ftp
            example: home
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: start_scan
                    type: string
                  module:
                    description: The name of the module called.
                    example: ClamScanner
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Start virus scan
      tags:
        - ClamScanner
        - Antivirus Protection (ClamAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ClamScanner \
              start_scan \
              scan_type='home'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ClamScanner/start_scan?scan_type=home
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ClamScanner_start_scan.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ClamScanner_start_scan.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ClamScanner/,
                q/start_scan/,
                {
                    'scan_type' => 'home',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ClamScanner_start_scan.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ClamScanner_start_scan.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ClamScanner',
                'start_scan',
                array (
                    'scan_type' => 'home',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 94
  /ContactInformation/get_notification_preferences:
    get:
      description: >-
        Use this function to get a cPanel or Webmail account's notification
        preferences.
      operationId: contactinformation-get_notification_preferences
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_notification_preferences
                    type: string
                  module:
                    description: The name of the module called.
                    example: ContactInformation
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects describing the cPanel or Webmail
                          account's notification preferences.
                        items:
                          properties:
                            additionalProperties:
                              type: string
                            descp:
                              description: A description of the notification setting.
                              example: Someone logs in to my account.
                              type: string
                            enabled:
                              description: |-
                                - 1 - Notification is enabled
                                - 0 - Notification is disabled
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            name:
                              description: The notification preference key name.
                              example: notify_account_login
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Return the account's notification preferences.
      tags:
        - ContactInformation
        - Contact Information
        - notifications
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ContactInformation \
              get_notification_preferences
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ContactInformation/get_notification_preferences
      x-cpanel-api-version: UAPI
  /ContactInformation/get_pushbullet_access_token:
    get:
      description: This function retrieves the cPanel account's Pushbullet™ access token.
      operationId: contactinformation-get_pushbullet_access_token
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_pushbullet_access_token
                    type: string
                  module:
                    description: The name of the module called.
                    example: ContactInformation
                    type: string
                  result:
                    properties:
                      data:
                        description: The cPanel account's Pushbullet access token.
                        type: string
                        example: a1b2c3d4e5f6g7h8i9j0
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API call.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Return Pushbullet access token
      tags:
        - ContactInformation
        - Contact Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ContactInformation \
              get_pushbullet_access_token
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ContactInformation/get_pushbullet_access_token
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            ContactInformation_get_pushbullet_access_token.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ContactInformation_get_pushbullet_access_token.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ContactInformation/,
                q/get_pushbullet_access_token/,
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            ContactInformation_get_pushbullet_access_token.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ContactInformation_get_pushbullet_access_token.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ContactInformation',
                'get_pushbullet_access_token',
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 130
  /ContactInformation/set_email_addresses:
    get:
      description: |-
        Use this function to set an account's contact email address(es).

        To unset all contact email addresses, call `unset_email_addresses`.
      operationId: contactinformation-set_email_addresses
      parameters:
        - description: The account’s new contact email addresses.
          example:
            - foo@example.com
            - bar@example.com
          explode: true
          in: query
          name: address
          required: true
          schema:
            items:
              format: email
              type: string
            type: array
        - description: >-
            The account’s existing contact email addresses.


            If this list does not match the account’s current current email
            address(es),

            then the request will fail. This control is here to prevent

            race conditions.
          example:
            - old1@example.com
          explode: true
          in: query
          name: old_address
          required: true
          schema:
            items:
              format: email
              type: string
            type: array
        - description: The account’s password.
          in: query
          name: password
          required: true
          schema:
            example: q1df%D9<z0ShqdxRP%^
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_email_addresses
                    type: string
                  module:
                    description: The name of the module called.
                    example: ContactInformation
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Set contact email address(es)
      tags:
        - ContactInformation
        - Contact Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ContactInformation \
              set_email_addresses \
              address='foo@example.com' address='bar@example.com' \
              old_address='old1@example.com' \
              password='q1df%D9<z0ShqdxRP%^'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ContactInformation/set_email_addresses?address=foo%40example.com&address=bar%40example.com&old_address=old1%40example.com&password=q1df%25D9%3cz0ShqdxRP%25%5e
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ContactInformation_set_email_addresses.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ContactInformation_set_email_addresses.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ContactInformation/,
                q/set_email_addresses/,
                {
                    'address' => 'foo@example.com'&address='bar@example.com',
                    'old_address' => 'old1@example.com',
                    'password' => 'q1df%D9<z0ShqdxRP%^',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ContactInformation_set_email_addresses.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ContactInformation_set_email_addresses.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ContactInformation',
                'set_email_addresses',
                array (
                    'address' => 'foo@example.com'&address='bar@example.com',
                    'old_address' => 'old1@example.com',
                    'password' => 'q1df%D9<z0ShqdxRP%^',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 102
  /ContactInformation/set_notification_preferences:
    post:
      description: >-
        Use this function to set the logged in cPanel or Webmail account's
        notification preferences.


        **Note:**


        To set a cPanel account's notification email address, call
        `set_email_addresses`. To return the list of account notification

        preferences you can set with `set_notification_preferences`, call
        `get_notification_preferences`.
      operationId: contactinformation-set_notification_preferences
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              two:
                summary: >-
                  An example showing how to set two account notification
                  preferences.
                value:
                  preferences:
                    notify_account_authn_link: '0'
                    notify_account_login: '1'
            schema:
              properties:
                preferences:
                  additionalProperties:
                    type: string
                  type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_notification_preferences
                    type: string
                  module:
                    description: The name of the module called.
                    example: ContactInformation
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of cPanel and Webmail account notification
                          preferences, including the newly-set preferences.
                        items:
                          properties:
                            additionalProperties:
                              type: string
                            descp:
                              description: A description of the notification setting.
                              example: Someone logs in to my account.
                              type: string
                            enabled:
                              description: |-
                                - 1 - Notification is enabled
                                - 0 - Notification is disabled
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            name:
                              description: The notification preference key name.
                              example: notify_account_login
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Set the account's notification preferences.
      tags:
        - ContactInformation
        - Contact Information
        - notifications
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            echo '{"preferences": { "notify_account_authn_link": 1 }}' | \
              uapi --output=jsonpretty \
              --user=muser \
              --input=json \
              ContactInformation \
              set_notification_preferences
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ContactInformation/set_notification_preferences
      x-cpanel-api-version: UAPI
  /ContactInformation/set_pushbullet_access_token:
    get:
      description: This function updates the cPanel account's Pushbullet™ access token.
      operationId: contactinformation-set_pushbullet_access_token
      parameters:
        - description: The account’s new Pushbullet access token.
          explode: true
          in: query
          name: pushbullet_access_token
          required: true
          schema:
            example: a1b2c3d4e5f6g7h8i9j0
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_pushbullet_access_token
                    type: string
                  module:
                    description: The name of the module called.
                    example: ContactInformation
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Update Pushbullet access token
      tags:
        - ContactInformation
        - Contact Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ContactInformation \
              set_pushbullet_access_token \
              pushbullet_access_token='a1b2c3d4e5f6g7h8i9j0'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ContactInformation/set_pushbullet_access_token?pushbullet_access_token=a1b2c3d4e5f6g7h8i9j0
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            ContactInformation_set_pushbullet_access_token.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ContactInformation_set_pushbullet_access_token.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ContactInformation/,
                q/set_pushbullet_access_token/,
                {
                    'pushbullet_access_token' => 'a1b2c3d4e5f6g7h8i9j0',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            ContactInformation_set_pushbullet_access_token.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ContactInformation_set_pushbullet_access_token.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ContactInformation',
                'set_pushbullet_access_token',
                array (
                    'pushbullet_access_token' => 'a1b2c3d4e5f6g7h8i9j0',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 130
  /ContactInformation/unset_email_addresses:
    get:
      description: |-
        Use this function to unset all contact email address for an account.

        To set contact email address(es), call `set_email_addresses`.
      operationId: contactinformation-unset_email_addresses
      parameters:
        - description: >-
            The account’s existing contact email addresses.


            If this list does not match the account’s current current email
            address(es),

            then the request will fail. This control is here to prevent

            race conditions.
          example:
            - old1@example.com
          explode: true
          in: query
          name: old_address
          required: true
          schema:
            items:
              format: email
              type: string
            type: array
        - description: The account’s password.
          in: query
          name: password
          required: true
          schema:
            example: q1df%D9<z0ShqdxRP%^
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create
                    type: string
                  module:
                    description: The name of the module called.
                    example: DynamicDNS
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Unset contact email addresses
      tags:
        - ContactInformation
        - Contact Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ContactInformation \
              unset_email_addresses \
              old_address='old1@example.com' \
              password='q1df%D9<z0ShqdxRP%^'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ContactInformation/unset_email_addresses?old_address=old1%40example.com&password=q1df%25D9%3cz0ShqdxRP%25%5e
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ContactInformation_unset_email_addresses.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ContactInformation_unset_email_addresses.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ContactInformation/,
                q/unset_email_addresses/,
                {
                    'old_address' => 'old1@example.com',
                    'password' => 'q1df%D9<z0ShqdxRP%^',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            ContactInformation_unset_email_addresses.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ContactInformation_unset_email_addresses.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ContactInformation',
                'unset_email_addresses',
                array (
                    'old_address' => 'old1@example.com',
                    'password' => 'q1df%D9<z0ShqdxRP%^',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 102
  /Contactus/is_enabled:
    get:
      description: >-
        This function checks whether the cPanel account can contact their
        hosting provider from the cPanel interface.
      operationId: is_enabled
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_enabled
                    type: string
                  module:
                    description: The name of the module called.
                    example: Contactus
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            description: "Whether the cPanel account can contact their hosting provider\nfrom the cPanel interface.\n\n* `1` —\_The cPanel account can contact their hosting provider\nfrom the cPanel interface.\n* `0` —\_The cPanel account **cannot** contact their hosting\nprovider from the cPanel interface."
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether contact option is enabled
      tags:
        - Contactus
        - Contact Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Contactus \
              is_enabled
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Contactus/is_enabled
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Contactus_is_enabled.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Contactus_is_enabled.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Contactus/,
                q/is_enabled/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Contactus_is_enabled.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Contactus_is_enabled.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Contactus',
                'is_enabled'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /DAV/disable_shared_global_addressbook:
    get:
      description: >-
        This function disables the shared global address book for the current
        cPanel account's webmail accounts.
      operationId: disable_shared_global_addressbook
      parameters:
        - description: >-
            cPanel account username or a Webmail user's email address. If you do
            **not** specify a user, this parameter defaults to the
            currently-authenticated user.
          in: query
          name: name
          required: false
          schema:
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_shared_global_addressbook
                    type: string
                  module:
                    description: The name of the module called.
                    example: DAV
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          shared:
                            description: |-
                              Whether the global address book is shared.
                              * `1` — Shared.
                              * `0` — **Not** shared.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable global address book
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DAV \
              disable_shared_global_addressbook
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DAV/disable_shared_global_addressbook
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DAV_disable_shared_global_addressbook.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DAV_disable_shared_global_addressbook.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DAV/,
                q/disable_shared_global_addressbook/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DAV_disable_shared_global_addressbook.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DAV_disable_shared_global_addressbook.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DAV',
                'disable_shared_global_addressbook'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /DAV/enable_shared_global_addressbook:
    get:
      description: >-
        This function enables the shared global address book for the current
        cPanel account's webmail accounts.
      operationId: enable_shared_global_addressbook
      parameters:
        - description: >-
            cPanel account username or a Webmail user's email address. If you do
            **not** specify a user, this parameter defaults to the
            currently-authenticated user.
          in: query
          name: name
          required: false
          schema:
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_shared_global_addressbook
                    type: string
                  module:
                    description: The name of the module called.
                    example: DAV
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          shared:
                            description: |-
                              Whether the global address book is shared.
                              * 1 — Shared.
                              * 0 — **Not** shared.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable global address book
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DAV \
              enable_shared_global_addressbook
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DAV/enable_shared_global_addressbook
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DAV_enable_shared_global_addressbook.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DAV_enable_shared_global_addressbook.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DAV/,
                q/enable_shared_global_addressbook/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DAV_enable_shared_global_addressbook.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DAV_enable_shared_global_addressbook.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DAV',
                'enable_shared_global_addressbook'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /DAV/get_calendar_contacts_config:
    get:
      description: >-
        This function returns the connection information to set up the CalDAV
        and CardDAV clients.
      operationId: get_calendar_contacts_config
      parameters:
        - description: >-
            A cPanel account or valid email account user.


            If you do **not** include this parameter, the function defaults to
            the current

            authenticated user.
          in: query
          name: user
          required: false
          schema:
            oneOf:
              - description: A cPanel account.
                example: username
                format: username
                type: string
              - description: A valid email account.
                example: username@example.com
                format: email
                type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_calendar_contacts_config
                    type: string
                  module:
                    description: The name of the module called.
                    example: DAV
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          activesync:
                            description: Configuration details for ActiveSync.
                            properties:
                              enabled:
                                description: |-
                                  Whether the server has ActiveSync enabled.
                                  * `1` — Enabled.
                                  * `0` — **Not** enabled.
                                enum:
                                  - 1
                                  - 0
                                example: 1
                                type: integer
                              port:
                                description: >-
                                  The port number the system uses for secure
                                  ActiveSync connections.
                                example: 2091
                                maximum: 65535
                                minimum: 1
                                type: integer
                              server:
                                description: The fully qualified domain name to connect to.
                                example: example.com
                                format: domain
                                type: string
                              user:
                                description: >-
                                  The cPanel user or email account user to

                                  whom the returned connection information
                                  pertains.


                                  If you do **not** specify the `user`
                                  parameter,

                                  this function returns the authenticated cPanel
                                  user.
                                example: username
                                type: string
                            type: object
                          no_ssl:
                            description: A list of non-SSL connection configurations.
                            properties:
                              calendars:
                                description: >-
                                  An array of objects containing the user's
                                  calendars.
                                items:
                                  properties:
                                    description:
                                      description: The description of the calendar.
                                      example: Custom calendar 1.
                                      type: string
                                    name:
                                      description: The name of the calendar.
                                      example: Calendar 1
                                      type: string
                                    path:
                                      description: The relative URL path to the calendar.
                                      example: >-
                                        /calendars/example/calendar:ZcG9JBH68WXxfMVUgvSrUw1
                                      type: string
                                    url:
                                      description: The absolute URL to the calendar.
                                      example: >-
                                        http://example.com:2079/calendars/example/calendar:ZcG9JBH68WXxfMVUgvSrUw1
                                      format: url
                                      type: string
                                  type: object
                                type: array
                              contacts:
                                description: >-
                                  An array of objects containing the user's
                                  address books.
                                items:
                                  properties:
                                    description:
                                      description: The description of the address book.
                                      example: Custom address book 1.
                                      type: string
                                    name:
                                      description: The name of the address book.
                                      example: Custom 1
                                      type: string
                                    path:
                                      description: The relative URL to the address book.
                                      example: >-
                                        /addressbooks/example/contacts:E-KKA5uQZyQJbTBKcGP3OQ6
                                      type: string
                                    url:
                                      description: The absolute URL to the address book.
                                      example: >-
                                        https://example.com:2080/addressbooks/example/contacts:E-KKA5uQZyQJbTBKcGP3OQ6
                                      format: url
                                      type: string
                                  type: object
                                type: array
                              free_busy:
                                description: >-
                                  The absolute URL path and HTTP port to the
                                  user's

                                  CalDAV `free-busy-query` connection.


                                  **Note:**


                                  This information is useful for clients that
                                  support Autodiscovery.
                                example: >-
                                  http://server.example.com:2079/kronolith/fb.php?u=example
                                format: url
                                type: string
                              full_server:
                                description: >-
                                  The absolute URL path and HTTP port to the
                                  user's CalDAV

                                  and CardDAV connection information.


                                  **Note:**


                                  This information is useful for clients that do
                                  **not** support Autodiscovery.
                                example: http://example.com:2079/rpc/principal/example
                                format: url
                                type: string
                              port:
                                description: >-
                                  The port number that the system uses for
                                  non-SSL connections.
                                example: 2079
                                maximum: 65535
                                minimum: 1
                                type: integer
                              server:
                                description: >-
                                  The short server connection string that
                                  includes a domain name and a port that uses
                                  the HTTP protocol.
                                example: http://example.com:2079
                                format: url
                                type: string
                            type: object
                          ssl:
                            description: A list of SSL connection configurations.
                            properties:
                              calendars:
                                description: >-
                                  An array of objects containing the user's
                                  calendars.
                                items:
                                  properties:
                                    description:
                                      description: The description of the calendar.
                                      example: Custom calendar 2.
                                      type: string
                                    name:
                                      description: The name of the calendar.
                                      example: Calendar 2
                                      type: string
                                    path:
                                      description: The relative URL path to the calendar.
                                      example: >-
                                        /calendars/example/calendar:ZcG9JBH68WXxfMVUgvSrUw1
                                      type: string
                                    url:
                                      description: The absolute URL to the calendar.
                                      example: >-
                                        http://example.com:2080/calendars/example/calendar:ZcG9JBH68WXxfMVUgvSrUw1
                                      format: url
                                      type: string
                                  type: object
                                type: array
                              contacts:
                                description: >-
                                  An array of objects containing the user's
                                  address books.
                                items:
                                  properties:
                                    description:
                                      description: The description of the address book.
                                      example: Custom address book 2.
                                      type: string
                                    name:
                                      description: The name of the address book.
                                      example: Address book 2
                                      type: string
                                    path:
                                      description: The relative URL to the address book.
                                      example: >-
                                        /addressbooks/example/contacts:E-KKA5uQZyQJbTBKcGP3OQ6
                                      type: string
                                    url:
                                      description: The absolute URL to the address book.
                                      example: >-
                                        https://example.com:2080/addressbooks/example/contacts:E-KKA5uQZyQJbTBKcGP3OQ6
                                      format: url
                                      type: string
                                  type: object
                                type: array
                              free_busy:
                                description: >-
                                  The absolute URL path and HTTPS port to the
                                  user's CalDAV

                                  `free-busy-query` connection.


                                  **Note:**


                                  This information is useful for clients that
                                  support Autodiscovery.
                                example: >-
                                  http://server.example.com:2080/kronolith/fb.php?u=example
                                format: url
                                type: string
                              full_server:
                                description: >-
                                  The absolute URL path and HTTPS port to the
                                  user's CalDAV and

                                  CardDAV connection information.


                                  **Note:**


                                  This information is useful for clients that do
                                  **not** support

                                  Autodiscovery.
                                example: http://example.com:2080/rpc/principal/example
                                format: url
                                type: string
                              is_self_signed:
                                description: >-
                                  Whether the server uses a self-signed
                                  certificate.


                                  * `1` — Self-signed.

                                  * `0` — **Not** self-signed.
                                enum:
                                  - 1
                                  - 0
                                example: 1
                                type: integer
                              port:
                                description: >-
                                  The port number that the system uses for SSL
                                  connections.
                                example: 2080
                                maximum: 65535
                                minimum: 1
                                type: integer
                              server:
                                description: >-
                                  The short server connection string that
                                  includes a

                                  domain name and a port that uses the HTTPS
                                  protocol.


                                  **Note:**


                                  This value is useful for clients that support
                                  Autodiscovery.
                                example: https://example.com:2080
                                format: url
                                type: string
                            type: object
                          user:
                            description: >-
                              The cPanel user or email account user to

                              whom the returned connection information pertains.


                              If you do **not** specify the `user` parameter,

                              this function returns the authenticated cPanel
                              user.
                            example: username
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return CalDAV and CardDAV connection information
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DAV \
              get_calendar_contacts_config
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DAV/get_calendar_contacts_config
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DAV_get_calendar_contacts_config.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DAV_get_calendar_contacts_config.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DAV/,
                q/get_calendar_contacts_config/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DAV_get_calendar_contacts_config.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DAV_get_calendar_contacts_config.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DAV',
                'get_calendar_contacts_config'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /DAV/has_shared_global_addressbook:
    get:
      description: >-
        This function checks whether the shared global address book is enabled
        on the current cPanel account's webmail accounts.
      operationId: has_shared_global_addressbook
      parameters:
        - description: >-
            cPanel account user name or a Webmail user's email address. If you
            do **not** specify a user, this parameter defaults to the
            currently-authenticated user.
          in: query
          name: name
          required: false
          schema:
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_shared_global_addressbook
                    type: string
                  module:
                    description: The name of the module called.
                    example: DAV
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          shared:
                            description: |-
                              Whether the global address book is enabled.
                              * `1` — Enabled.
                              * `0` — **Not** enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether global address book is enabled
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DAV \
              has_shared_global_addressbook
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DAV/has_shared_global_addressbook
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DAV_has_shared_global_addressbook.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DAV_has_shared_global_addressbook.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DAV/,
                q/has_shared_global_addressbook/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DAV_has_shared_global_addressbook.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DAV_has_shared_global_addressbook.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DAV',
                'has_shared_global_addressbook'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /DAV/is_dav_service_enabled:
    get:
      description: This function checks whether the DAV service is enabled.
      operationId: is_dav_service_enabled
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_dav_service_enabled
                    type: string
                  module:
                    description: The name of the module called.
                    example: DAV
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            description: |-
                              Whether the DAV service is enabled.
                              * `1` — Enabled.
                              * `0` — Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether DAV is enabled
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DAV \
              is_dav_service_enabled
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DAV/is_dav_service_enabled
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DAV_is_dav_service_enabled.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DAV_is_dav_service_enabled.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DAV/,
                q/is_dav_service_enabled/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DAV_is_dav_service_enabled.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DAV_is_dav_service_enabled.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DAV',
                'is_dav_service_enabled'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /DAV/is_horde_enabled:
    get:
      description: >-
        This function checks whether Horde is enabled. Since Horde is no longer
        installed with the product, the return value will only ever be 0.
      operationId: is_horde_enabled
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_horde_enabled
                    type: string
                  module:
                    description: The name of the module called.
                    example: DAV
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            description: >-
                              Whether Horde is enabled. Always false because
                              horde is no longer installed with the product.

                              * `0` — Disabled.
                            enum:
                              - 0
                            example: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether Horde is enabled
      tags:
        - DAV
        - Calendar and Contacts (DAV)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DAV \
              is_horde_enabled
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DAV/is_horde_enabled
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DAV_is_horde_enabled.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DAV_is_horde_enabled.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DAV/,
                q/is_horde_enabled/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DAV_is_horde_enabled.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DAV_is_horde_enabled.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DAV',
                'is_horde_enabled'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /DCV/check_domains_via_dns:
    post:
      description: >-
        This function checks whether the account's domains can pass Domain
        Control Validation (DCV) via a DNS request.
      operationId: check_domains_via_dns
      parameters:
        - description: |-
            The domain or domains to check.

            **Note:**

             To check multiple domains, increment the parameter name. For example, `domain-0`, `domain-1`, and `domain-2`.
          examples:
            multiple:
              summary: Check multiple domains.
              value: domain-0=example.com&domain-1=example2.com
            single:
              summary: Check a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: check_domains_via_dns
                    type: string
                  module:
                    description: The name of the module called.
                    example: DCV
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing the results from each
                          `domain` parameter’s DCV check.


                          **Note:**

                           The function returns the results from the `domain` parameter in the same order in which you called them.
                        items:
                          properties:
                            dcv_string:
                              description: The expected value of the queried DNS record.
                              example: >-
                                _dcv-test-record=wsWRlG9IsG7KNnLdIsx9Oz2oTw8m5q0imRR9L6LnDBz14sZelvDHqrJyJc6LA0DY
                              type: string
                            domain:
                              description: The domain that the system verified.
                              example: example.com
                              format: domain
                              type: string
                            failure_reason:
                              description: >-
                                A message that contains the reason why the DCV
                                check failed.


                                **Note:**

                                  If the server fails to update the DNS zone, the system returns this value.
                              example: >-
                                The DNS query to _dcv-test-record.example2.org
                                for the DCV challenge returned no TXT record
                                that matches the value
                                _dcv-test-record=wRUFPTN1DskKDG8KHfYM_5cQF5QUGWq1_A2ovO8rKsrIYO_HilAjsQABFCrbJkLX.
                              type: string
                            query_results:
                              description: >-
                                The strings that the DNS query returned. This
                                array may be empty.


                                **Note:**

                                 If the server fails to update the DNS zone, the system returns the `failure_reason` value.
                              example:
                                - >-
                                  _dcv-test-record=wsWRlG9IsG7KNnLdIsx9Oz2oTw8m5q0imRR9L6LnDBz14sZelvDHqrJyJc6LA0DY
                              items:
                                type: string
                              type: array
                            succeeded:
                              description: >-
                                Whether the DCV check succeeded.

                                - `1` - At least one of the `query_results`
                                values equals the `dcv_string` value.

                                - `0` - None of the `query_results` values equal
                                the `dcv_string` value.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            zone:
                              description: The altered and queried DNS zone name.
                              example: example.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Verify domain ownership via DNS
      tags:
        - DCV
        - Verify Domain Ownership
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DCV \
              check_domains_via_dns \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DCV/check_domains_via_dns?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DCV_check_domains_via_dns.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DCV_check_domains_via_dns.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DCV/,
                q/check_domains_via_dns/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DCV_check_domains_via_dns.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DCV_check_domains_via_dns.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DCV',
                'check_domains_via_dns',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /DCV/check_domains_via_http:
    get:
      description: >-
        This function checks whether the account's domains can pass Domain
        Control Validation (DCV) via an HTTP request.
      operationId: check_domains_via_http
      parameters:
        - description: >-
            The domains to check.


            **Note:**


            To check more than one domain, repeat or increment the parameter
            name. For

            example, `domain-1`, `domain-2`, and `domain-3`.
          examples:
            multiple:
              summary: Check multiple domains.
              value: domain-1=example.com&domain-2=example2.com&domain-3=example2.com
            single:
              summary: Check a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
        - description: "An array of characters that the certificate provider\_allows in the DCV check file's filename."
          in: query
          name: dcv_file_allowed_characters
          required: false
          schema:
            default:
              - A
              - B
              - C
              - D
              - E
              - F
              - G
              - H
              - I
              - J
              - K
              - L
              - M
              - 'N'
              - O
              - P
              - Q
              - R
              - S
              - T
              - U
              - V
              - W
              - X
              - 'Y'
              - Z
              - 0
              - 1
              - 2
              - 3
              - 4
              - 5
              - 6
              - 7
              - 8
              - 9
            items:
              type: string
            type: array
        - description: "The DCV check file extension that the certificate provider\_requires."
          in: query
          name: dcv_file_extension
          required: false
          schema:
            default: ''
            example: txt
            type: string
        - description: "The number of characters that the certificate provider\_allows in the DCV check file's filename."
          in: query
          name: dcv_file_random_character_count
          required: false
          schema:
            default: 100
            example: 32
            minimum: 1
            type: integer
        - description: >-
            The DCV check file's file path, relative to the domain's document
            `root` directory.
          in: query
          name: dcv_file_relative_path
          required: false
          schema:
            default: .well-known/pki-validation
            example: .well-known/pki-validation
            type: string
        - description: "The number of domain redirects the system permits the DCV check to follow. The function checks the provider's supported number of redirects.\nIt will then return the `redirect` array of objects for the passed value, plus one. This ensures the function\_will display any redirects causing DCV failures, if any exist.\n\n**Note:**\n\n* If you pass a `0` value, this function does **not** limit the number of redirect returns.\n* Use the `Market::get_provider_specific_dcv_constraints` UAPI function to list a provider's supported number of redirects."
          in: query
          name: dcv_max_redirects
          required: false
          schema:
            default: null
            example: 2
            minimum: 0
            nullable: true
            type: integer
        - description: >-
            The [user agent string](https://wikipedia.org/wiki/User_agent) that
            the system uses for the imitated local DCV check.


            **Important:**


            The default value can change at any time.
          in: query
          name: dcv_user_agent_string
          required: false
          schema:
            example: SECTIGO+DCV
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: check_domains_via_http
                    type: string
                  module:
                    description: The name of the module called.
                    example: DCV
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contains results from each
                          domain's DCV check.


                          **Note:**

                           The function returns the domain's results in the same order that you pass them in the `domain` parameter.
                        items:
                          properties:
                            failure_reason:
                              description: |-
                                The reason that the DCV check failed.
                                * `null` — The domain passed the DCV check.
                              example: >-
                                The system queried for a temporary file at
                                http://example.com/.well-known/pki-validationD01511F4E
                                E535A5442FC378AA946CF41.txt, but the web server
                                responded with the following error: 404 (Not
                                Found). A DNS (Domain Name System) or web server
                                misconfiguration may exist. The domain
                                example.com resolved to an IP address
                                93.184.216.34 that does not exist on this
                                server.
                              nullable: true
                              type: string
                            redirects:
                              description: >-
                                An array of objects that contains DCV check
                                redirect information.


                                **Note:**

                                 This **only** contains data if the `redirects_count` return includes a value greater than zero.
                              items:
                                properties:
                                  content:
                                    description: >-
                                      A message that explains why the function
                                      failed.
                                    example: >-
                                      <!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
                                      2.0//EN\">\n<html><head>\n<title>301 Moved
                                      Permanently</title>\n
                                      </head><body>\n<h1>Moved
                                      Permanently</h1>\n <p>The document has
                                      moved <a
                                      href=\"http://www.example.com/.well-known/pki-validation/770102
                                      17B0CCF0CCF6211602F9A1B2B2.txt\">here</a>.</p>\n</body></html>\n
                                    type: string
                                  headers:
                                    description: >-
                                      An object that contains the
                                      [HTTP::Tiny](http://search.cpan.org/~dagolden/HTTP-Tiny-0.070/lib/HTTP/Tiny.pm)
                                      CPAN module returns.


                                      **Note:**

                                        This object's contents vary according to the URL's headers.
                                    type: object
                                  protocol:
                                    description: The URL's HTTP protocol.
                                    example: HTTP/1.1
                                    type: string
                                  reason:
                                    description: The HTTP response status message.
                                    example: Moved Permanently
                                    type: string
                                  redirects:
                                    description: >-
                                      An array of objects containing the
                                      redirects, if the value exists.
                                    example: null
                                    nullable: true
                                    type: array
                                  status:
                                    description: >-
                                      The [HTTP response status
                                      code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes).
                                    example: 301
                                    type: integer
                                  success:
                                    description: >-
                                      Whether the server returns a [2XX HTTP
                                      status
                                      code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success).

                                      * `1` — The server returns a 2XX status
                                      code.

                                      * `0` or an empty string — The server does
                                      **not** return a 2XX status code.
                                    example: ''
                                    oneOf:
                                      - enum:
                                          - ''
                                        type: string
                                      - enum:
                                          - 0
                                          - 1
                                        type: integer
                                  url:
                                    description: >-
                                      The URL that the function searches for the
                                      DCV file.
                                    example: >-
                                      http://example.com/.well-known/pki-validation/77010217B0CCF0CCF6211602F9A1B2B2.txt
                                    format: url
                                    type: string
                                type: object
                              type: array
                            redirects_count:
                              description: >-
                                The number of HTTP redirects that the DCV check
                                follows.
                              example: 0
                              minimum: 0
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Verify domain ownership via HTTP
      tags:
        - DCV
        - Verify Domain Ownership
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DCV \
              check_domains_via_http \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DCV/check_domains_via_http?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DCV_check_domains_via_http.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DCV_check_domains_via_http.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DCV/,
                q/check_domains_via_http/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DCV_check_domains_via_http.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DCV_check_domains_via_http.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DCV',
                'check_domains_via_http',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 60
  /DCV/ensure_domains_can_pass_dcv:
    get:
      deprecated: true
      description: >-
        This function indicates whether the account's domains can pass a Domain
        Control

        Validation (DCV) check.


        **Warning:**


        We deprecated this function. Use UAPI's `DCV::check_domains_via_http`
        function.
      operationId: ensure_domains_can_pass_dcv
      parameters:
        - description: |-
            The domains to check.

            **Note:**

             To check multiple domains, duplicate or increment the parameter name. For example,
             `domain-1`, `domain-2`, and `domain-3`.
          examples:
            multiple:
              summary: Check multiple domains.
              value: >-
                domain-1=example1.com domain-2=example2.com
                domain-3=example3.com
            multiple-alternative:
              summary: Check multiple domains.
              value: domain=example1.com domain=example2.com domain=example3.com
            single:
              summary: Check a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: ensure_domains_can_pass_dcv
                    type: string
                  module:
                    description: The name of the module called.
                    example: DCV
                    type: string
                  result:
                    properties:
                      data:
                        description: "A list of results from each domain parameter's DCV check.\n\n* `null` —\_The domain passes the DCV check.\n\n**Note:**\n\nThe function returns the results from the domains in the same order\nin which you called them."
                        example:
                          - null
                          - null
                          - The domain resolves to Mars. Beep beep beep.
                        items:
                          nullable: true
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Verify domain ownership
      tags:
        - DCV
        - Verify Domain Ownership
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DCV \
              ensure_domains_can_pass_dcv \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DCV/ensure_domains_can_pass_dcv?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DCV_ensure_domains_can_pass_dcv.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DCV_ensure_domains_can_pass_dcv.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DCV/,
                q/ensure_domains_can_pass_dcv/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DCV_ensure_domains_can_pass_dcv.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DCV_ensure_domains_can_pass_dcv.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DCV',
                'ensure_domains_can_pass_dcv',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /DNS/ensure_domains_reside_only_locally:
    get:
      description: >-
        This function indicates whether the account's domains resolve
        exclusively to this server.
      operationId: ensure_domains_reside_only_locally
      parameters:
        - description: >-
            The domain to check.


            **Note:**


            To check multiple domains, duplicate or increment the parameter
            name. For example, to exclude three domains, you could:

            * Use the `domain` parameter multiple times.

            * Use the `domain`, `domain-1`, and `domain-2` parameters.
          examples:
            multiple:
              summary: Multiple domains
              value: domain=example.com&domain-1=example1.com&domain-2=example2.com
            multiple-alternative:
              summary: Multiple domains
              value: domain=example.com&domain=example1.com&domain=example2.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            example: example1.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: ensure_domains_reside_only_locally
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The results from each domain parameter's DNS query.

                          * `null` - The domain **only** resolves locally to the
                          server.

                          * A valid string that explains to where the domain
                          resolves.


                          **Note:**

                           The function returns the results from the domains in the same order that you called them.
                        items:
                          example: The domain resolves to Mars. Beep beep beep.
                          type: string
                        nullable: true
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether domains only resolve locally
      tags:
        - DNS
        - DNS Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNS \
              ensure_domains_reside_only_locally \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/ensure_domains_reside_only_locally?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_ensure_domains_reside_only_locally.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNS_ensure_domains_reside_only_locally.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNS/,
                q/ensure_domains_reside_only_locally/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_ensure_domains_reside_only_locally.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNS_ensure_domains_reside_only_locally.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'ensure_domains_reside_only_locally',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /DNS/has_local_authority:
    get:
      description: >-
        This function checks whether the local server is authoritative for the
        domain's DNS records.
      operationId: has_local_authority
      parameters:
        - description: "The domain to check whether the local server is authoritative for the domain's\nDNS records.\n\n**Note:**\n\nTo check multiple domains, increment or duplicate the parameter name. For\nexample, `domain-0`,\_`domain-1`, and\_`domain-2`."
          examples:
            multiple:
              summary: Check multiple domains.
              value: domain-0=example.com domain-1=example1.com domain-2=example2.com
            multiple-alternative:
              summary: Check multiple domains.
              value: domain=example.com domain=example1.com domain=example2.com
            single:
              summary: Check a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_local_authority
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing information about the
                          authoritative status of a domain's local DNS zone
                          files.
                        example:
                          - domain: example.com
                            local_authority: 1
                            nameservers:
                              - ns1.example.com
                              - ns2.example.com
                            zone: example.com
                          - domain: example2.com
                            local_authority: 0
                            nameservers: []
                          - domain: example3.com
                            error: (XID 3z756a) DNS query (example3.com/SOA) timeout!
                            local_authority: 0
                            nameservers: []
                            zone: example3.com
                        items:
                          properties:
                            domain:
                              description: The queried domain.
                              format: domain
                              type: string
                            error:
                              description: >-
                                An error message that details the reason why the
                                local server's

                                authoritative check failed.


                                **Note:**


                                The function **only** returns this value when
                                the check fails.
                              type: string
                            local_authority:
                              description: >-
                                Whether the local server is authoritative for
                                the domain's DNS

                                records.


                                * `1` — The local server is authoritative for
                                the domain's DNS

                                records.

                                * `0` — The local server is **not**
                                authoritative for the domain's

                                DNS records.
                              enum:
                                - 1
                                - 0
                              type: integer
                            nameservers:
                              description: The domain's nameservers, if any exist.
                              items:
                                format: domain
                                type: string
                              type: array
                            zone:
                              description: |-
                                The domain's DNS zone, if one exists.

                                * `null` — No valid DNS zone.
                              format: domain
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          nullable: true
                          type: string
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether local DNS server is authoritative
      tags:
        - DNS
        - DNS Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNS \
              has_local_authority \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/has_local_authority?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_has_local_authority.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNS_has_local_authority.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNS/,
                q/has_local_authority/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_has_local_authority.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNS_has_local_authority.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'has_local_authority',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /DNS/is_alias_available:
    get:
      description: >-
        This function returns whether `ALIAS` and `ANAME` records are available
        and the value of the running PowerDNS (PDNS) `resolver` setting, if any
        exists.

        For more information, read our [`ALIAS`
        documentation](https://go.cpanel.net/dns-alias-record).
      operationId: DNS::is_alias_available
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_alias_available
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          alias:
                            description: >-
                              Whether `ALIAS` records are available.


                              * `1` - Available.

                              * `0` - Not available.


                              When `ALIAS` records are enabled, they may work in
                              API calls that accept `A` and `AAAA` records.
                              However, the `ALIAS` record must use a fully
                              qualified domain name (FQDN) rather than an IP
                              address.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          aname:
                            description: >-
                              Whether `ANAME` records are available.


                              * `1` - Available.

                              * `0` - Not available.


                              **NOTE:**


                              The `aname` value is always set to false (i.e. Not
                              available). The `ANAME` record is currently not
                              supported. It is included for completeness and
                              future proofing.
                            enum:
                              - 1
                              - 0
                            example: 0
                            type: integer
                          resolver:
                            description: >-
                              The value (if any) of the running PDNS’s
                              `resolver` setting.
                            example: 8.8.8.8
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return `ALIAS` DNS record availability & resolver
      tags:
        - DNS
        - DNS Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty --user=username DNS is_alias_available
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/is_alias_available
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_is_alias_available.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNS_is_alias_available.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(DNS => 'is_alias_available');


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_is_alias_available.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNS_is_alias_available.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'is_alias_available'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 122
  /DNS/is_https_available:
    get:
      description: >-
        This function fetches information regarding HTTPS records support.

        HTTPS records are defined in RFC 9460 and provide service parameters for
        HTTPS endpoints.

        For more information, read our [HTTPS record
        documentation](https://go.cpanel.net/dns-https-record).
      operationId: is_https_available
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_https_available
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          https:
                            description: |-
                              Whether HTTPS records are supported.
                              * `1` - Supported.
                              * `0` - Not supported.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          dns_server:
                            description: >-
                              The DNS server type currently in use (bind, pdns,
                              etc.).
                            example: pdns
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return DNS HTTPS record support information
      tags:
        - DNS
        - DNS Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty --user=username DNS is_https_available
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/is_https_available
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_is_https_available.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNS_is_https_available.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(DNS => 'is_https_available');


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_is_https_available.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNS_is_https_available.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'is_https_available'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 122
  /DNS/lookup:
    get:
      description: This function returns DNS zone information about a domain.
      operationId: dns-lookup
      parameters:
        - description: A fully qualified domain name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: lookup
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        description: Contains each response item.
                        example:
                          - example.com has address 93.184.216.34
                          - >-
                            example.com has IPv6 address
                            2606:2800:220:1:248:1893:25c8:1946
                          - example.com mail is handled by 0 .
                        items:
                          type: string
                        nullable: true
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domain's DNS information
      tags:
        - DNS
        - DNS Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNS \
              lookup \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/lookup?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_lookup.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/DNS_lookup.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNS/,
                q/lookup/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_lookup.live.php and put this code into that
            file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to .../frontend/<theme-name>/api_examples/DNS_lookup.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'lookup',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 90
  /DNS/mass_edit_zone:
    get:
      description: >-
        This function updates a DNS zone by allowing multiple records to be
        added, modified, or removed in a single call. It also ensures modified
        records occupy the same number of lines as before the edit.


        **NOTE:**


        You cannot use this function to edit temporary domains.
      operationId: dns-mass_edit_zone
      parameters:
        - description: |-
            The current serial number in the DNS zone’s SOA (Start of Authority)
            record. If this value does not match the zone’s current state, the
            request fails.
          in: query
          name: serial
          required: true
          schema:
            example: 202001010100
            minimum: 0
            type: integer
        - description: The name of one of the user’s DNS zones.
          in: query
          name: zone
          required: true
          schema:
            example: example.com
            type: string
        - description: |-
            The records to add to the zone. Each item must be a serialized
            JSON object that contains:

            * `dname` — The record’s name.
            * `ttl` — The record’s TTL (Time-To-Live) value.
            * `record_type` — The record’s type. For example, `A` or `TXT`.
            * `data` — An array of strings. The format and number of the
              strings depend on the `record_type` value.
          examples:
            a:
              description: An A record.
              value: >-
                '{"dname":"example", "ttl":14400, "record_type":"A",
                "data":["11.22.33.44"]}'
            aaaa:
              description: A TXT record.
              value: >-
                '{"dname":"example", "ttl":14400, "record_type":"TXT",
                "data":["string1", "string2"]}'
          explode: true
          in: query
          name: add
          required: false
          schema:
            items:
              format: json
              type: string
            type: array
        - description: >-
            The records to edit in the zone. Each item must be a serialized

            JSON object that contains:


            * `line_index` — The line number in the DNS zone where the record
            starts.
              This is a 0-based index, so to edit the first line in the file
              use the `0` value. To edit the second line, give `1`, and so forth.
            * `dname` — The record’s name.

            * `ttl` — The record’s TTL (Time-To-Live) value.

            * `record_type` — The record’s new type. For example, `A` or `TXT`.

            * `data` — An array of strings. The format and number of the
              strings depend on the `record_type` value.
          explode: true
          in: query
          name: edit
          required: false
          schema:
            items:
              example: >-
                '{"line_index": 9, "dname":"example", "ttl":14400,
                "record_type":"TXT", "data":["string1", "string2"]}'
              format: json
              type: string
            type: array
        - description: The line indexes of records to remove from the zone.
          explode: true
          in: query
          name: remove
          required: false
          schema:
            items:
              example: 22
              minimum: 0
              type: integer
            type: array
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: mass_edit_zone
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          new_serial:
                            description: |-
                              The DNS zone’s SOA record’s new serial number.
                              You can use this to submit later edits if you
                              track the number of lines each record takes up.
                            example: 2021031903
                            minimum: 0
                            type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update a DNS zone
      tags:
        - DNS
        - DNS Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username DNS mass_edit_zone
            zone='example.com' serial='202001010100' remove=23
            add='{"dname":"example","ttl":14400,"record_type":"A","data":["127.0.0.1"]}'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/mass_edit_zone?zone=example.com&serial=202001010100&remove=23
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_mass_edit_zone.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNS_mass_edit_zone.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNS/,
                q/mass_edit_zone/,
                {
                    'zone' => 'example.com',
                    'serial' => '202001010100',
                    'add' => '{"dname":"example","ttl":14400,"record_type":"A","data":["127.0.0.1"]}',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_mass_edit_zone.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNS_mass_edit_zone.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'mass_edit_zone',
                array (
                    'zone' => 'example.com',
                    'serial' => '202001010100',
                    'add' => '{"dname":"example","ttl":14400,"record_type":"A","data":["127.0.0.1"]}',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 96
  /DNS/parse_zone:
    get:
      description: |-
        This function parses a given DNS zone.

        **Important:**

        Most DNS zones contain only 7-bit ASCII. However, it is possible for
        DNS zones to contain any binary sequence. An application that decodes
        this function's base64 output **must** be able to handle cases
        where the decoded octets do not match any specific character
        encoding.
      operationId: dns-parse_zone
      parameters:
        - description: The name of one of the user’s DNS zones.
          in: query
          name: zone
          required: true
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: parse_zone
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        $ref: '#/components/schemas/Payload'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return a parsed DNS zone
      tags:
        - DNS
        - DNS Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNS \
              parse_zone \
              zone='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/parse_zone?zone=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_parse_zone.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNS_parse_zone.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNS/,
                q/parse_zone/,
                {
                    'zone' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_parse_zone.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNS_parse_zone.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'parse_zone',
                array (
                    'zone' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 96
  /DNS/swap_ip_in_zones:
    get:
      description: |-
        This function replaces a domain's IPv4 address in the DNS zone
        file with the specified destination IPv4 address.
      operationId: DNS-swap_ip_in_zones
      parameters:
        - description: The IPv4 address to use as the replacement in the zone files.
          in: query
          name: dest_ip
          required: true
          schema:
            type: string
            format: ipv4
            example: 192.0.2.1
        - description: >-
            The domain to perform the zone file updates on.


            **Note:**


            To update multiple domains, increment or duplicate the parameter
            name. For

            example, `domain-0`, `domain-1`, and `domain-2`.
          examples:
            multiple:
              summary: Update multiple domains.
              value: example.com domain-1=example1.com domain-2=example2.com
            multiple-alternative:
              summary: Update multiple domains.
              value: example.com domain=example1.com domain=example2.com
            single:
              summary: Update a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The IPv4 address to use as the replacement for FTP records in the
            zone files.


            If this parameter is **not** provided, then the system will use the
            `dest_ip` value.
          in: query
          name: ftp_ip
          required: false
          schema:
            type: string
            format: ipv4
            example: 192.0.2.1
        - description: >-
            The IPv4 address to replace in the zone files. The detected source
            IPv4 address is one of:


            * If there is an A record for the root of the zone **and** the IP
            address is **not** a loopback address, then the system will use its
            address.

            * If there are any A records in the zone whose addresses are **not**
            loopback addresses, then the system will use the address of the
            first such A record in the zone file.

            * If no A records exist in the zone **or** all A records have
            loopback addresses, then the system will **not** update the zone
            file.


            If you do **not** call this parameter, the system will automatically
            detect the IP addresses in the zone files.
          in: query
          name: source_ip
          required: false
          schema:
            type: string
            format: ipv4
            example: 192.0.2.0
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: swap_ip_in_zones
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNS
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing the updated DNS
                          records, including their previous values.
                        items:
                          properties:
                            zone_name:
                              description: >-
                                The DNS zone in which the system updated the
                                domain's record.
                              format: domain
                              nullable: false
                              type: string
                              example: example.com
                            record_name:
                              description: The name of the domain's updated DNS record.
                              format: domain
                              nullable: false
                              type: string
                              example: example.com
                            record_type:
                              description: The type of the DNS record which was updated.
                              type: string
                              example: A
                            old_value:
                              description: >-
                                The value of the DNS record before it was
                                updated.
                              type: string
                              example: 192.0.2.0
                            new_value:
                              description: >-
                                The value of the DNS record after it was
                                updated.
                              type: string
                              example: 192.0.2.1
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update IP addresses in zone files
      tags:
        - DNS
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --user=username DNS swap_ip_in_zones domain='example.com'
            source_ip='192.0.2.0' dest_ip='192.0.2.1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNS/swap_ip_in_zones?domain=example.com&source_ip=192.0.2.0&dest_ip=192.0.2.1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNS_swap_ip_in_zones.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNS_swap_ip_in_zones.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNS/,
                q/swap_ip_in_zones/,
                {
                    'domain'    => 'example.com',
                    'source_ip' => '192.0.2.0',
                    'dest_ip'   => '192.0.2.1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNS_swap_ip_in_zones.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNS_swap_ip_in_zones.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNS',
                'swap_ip_in_zones',
                array (
                    'domain'    => 'example.com',
                    'source_ip' => '192.0.2.0',
                    'dest_ip'   => '192.0.2.1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 96
  /DNSSEC/activate_zone_key:
    get:
      description: >-
        This function activates a DNSSEC security key.


        **Important:**


        When you disable the [DNS role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: activate_zone_key
      parameters:
        - description: The security key's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The security key's ID.
          in: query
          name: key_id
          required: true
          schema:
            example: 1
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: activate_zone_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          domain: example.com
                          key_id: '1'
                          success: 1
                        properties:
                          domain:
                            description: >-
                              The domain for which the system activated a
                              security key.
                            example: example.com
                            format: domain
                            type: string
                          error:
                            description: >-
                              An error message that describes why the system
                              could not activate the security key.


                              **Note:**


                              The function **only** displays this return when
                              the `success` return is a `0` value.
                            example: >-
                              Error: Invalid key_id or domain specified: No such
                              key present for domain.
                            type: string
                          key_id:
                            description: The security key's ID.
                            example: '1'
                            type: string
                          success:
                            description: >-
                              Whether the system activated the security key.

                              * `1` - Activated.

                              * `0` - The system failed to activate the security
                              key. 
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable DNSSEC security key
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              activate_zone_key \
              domain='example.com' \
              key_id='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/activate_zone_key?domain=example.com&key_id=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_activate_zone_key.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_activate_zone_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/activate_zone_key/,
                {
                    'domain' => 'example.com',
                    'key_id' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_activate_zone_key.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_activate_zone_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'activate_zone_key',
                array (
                    'domain' => 'example.com',
                    'key_id' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /DNSSEC/add_zone_key:
    get:
      description: >-
        This function generates a DNSSEC zone key for a domain.


        **Note:**


        * After you enable DNSSEC on the domain, you **must** add the DS records
        to your registrar.

        * You **cannot** modify the DNSSEC security key. To make any changes,
        you **must** disable (and delete) and re-create the DNSSEC security key.


        **Important:**


        When you disable the [DNS role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: add_zone_key
      parameters:
        - description: >-
            The algorithm that the system uses to generate the security key.


            * `5` — RSA/SHA-1

            * `6` — DSA-NSEC3-SHA1

            * `7` — RSASHA1-NSEC3-SHA1

            * `8` — RSA/SHA-256

            * `10` — RSA/SHA-512

            * `13` — ECDSA Curve P-256 with SHA-256

            * `14` — ECDSA Curve P-384 with SHA-384


            **Note:**


            We recommend that you use 'ECDSA Curve P-256 with SHA-256' if your
            registrar supports it.
          in: query
          name: algo_num
          required: true
          schema:
            enum:
              - 5
              - 6
              - 7
              - 8
              - 10
              - 13
              - 14
            example: 8
            type: integer
        - description: The domain on which to enable DNSSEC.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: |-
            The type of key to add.

            * `ksk`
            * `zsk`
          in: query
          name: key_type
          required: true
          schema:
            enum:
              - ksk
              - zsk
            example: ksk
            type: string
        - description: |-
            Whether to activate the newly-created key.

            * `1` — Activate the key.
            * `0` — Do **not** activate the key.
          in: query
          name: active
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The key's size, in bits.


            **Note:**


            For the following `algo_num` and `key_type` parameters, the
            `key_size` defaults to the following values:

            * `5` — ksk `2048` zsk `1024`

            * `6` — ksk `2048` zsk `1024`

            * `7` — ksk `2048` zsk `1024`

            * `8` — ksk `2048` zsk `1024`

            * `10` — ksk `2048` zsk `1024`

            * `13` — ksk `256` zsk `256`

            * `14` — ksk `384` zsk `384` 
          in: query
          name: key_size
          required: false
          schema:
            example: 2048
            maximum: 2048
            minimum: 256
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_zone_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          domain:
                            description: >-
                              The domain for which the system added a security
                              key.
                            example: example.com
                            format: domain
                            type: string
                          error:
                            description: >-
                              An error message that describes why the system
                              could not add the security key.


                              **Note:**


                              The function **only** displays this return when
                              the `success` return is a `0` value.
                            example: >-
                              Error: Invalid key_id or domain specified: No such
                              key present for domain.
                            type: string
                          new_key_id:
                            description: The security key's ID.
                            example: '1'
                            type: string
                          success:
                            description: |-
                              Whether the system added the security key.

                              * `1` — The system added the security key.
                              * `0` — The system failed to add the security key.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create DNSSEC security key
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              add_zone_key \
              domain='example.com' \
              algo_num='8' \
              key_type='ksk'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/add_zone_key?domain=example.com&algo_num=8&key_type=ksk
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_add_zone_key.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_add_zone_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/add_zone_key/,
                {
                    'domain' => 'example.com',
                    'algo_num' => '8',
                    'key_type' => 'ksk',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_add_zone_key.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_add_zone_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'add_zone_key',
                array (
                    'domain' => 'example.com',
                    'algo_num' => '8',
                    'key_type' => 'ksk',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /DNSSEC/deactivate_zone_key:
    get:
      description: >-
        This function deactivates a DNSSEC security key.


        **Important:**


        When you disable the [*DNS* role](https://go.cpanel.net/serverroles/),
        the system **disables** this function.
      operationId: deactivate_zone_key
      parameters:
        - description: The security key's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The security key's ID.
          in: query
          name: key_id
          required: true
          schema:
            example: 1
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: deactivate_zone_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          domain:
                            description: >-
                              The domain for which the system deactivated a
                              security key.
                            example: example.com
                            format: domain
                            type: string
                          error:
                            description: >-
                              An error message that describes why the system
                              could not

                              deactivate the security key.


                              **Note**


                              The function **only** displays this return when
                              the `success` return is a `0` value.
                            example: >-
                              Error:  Invalid key_id or domain specified: No
                              such key present for domain.
                            type: string
                          key_id:
                            description: The security key's ID.
                            example: '1'
                            type: string
                          success:
                            description: >-
                              Whether the system deactivated the security key.


                              * `1` - Deactivated.

                              * `0` - The system failed to deactivate the
                              security key.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable DNSSEC security key
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              deactivate_zone_key \
              domain='example.com' \
              key_id='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/deactivate_zone_key?domain=example.com&key_id=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_deactivate_zone_key.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_deactivate_zone_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/deactivate_zone_key/,
                {
                    'domain' => 'example.com',
                    'key_id' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_deactivate_zone_key.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_deactivate_zone_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'deactivate_zone_key',
                array (
                    'domain' => 'example.com',
                    'key_id' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /DNSSEC/disable_dnssec:
    get:
      description: |-
        This function disables DNSSEC on the domain.

        **Warning:**

         * This action is **irreversible**. If you disable DNSSEC on the domain, you will lose the associated keys. You can only retrieve the previous state with a full backup.
         * If you disable DNSSEC, you **must** remove the DNS records at the registrar.

        **Important:**

          When you disable the [DNS role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: disable_dnssec
      parameters:
        - description: |-
            The domain on which to disable DNSSEC.

            **Note:**

             To enable DNSSEC on multiple domains, increment the parameter name. For example: `domain-0`, `domain-1`, `domain-2`.
          examples:
            multiple:
              summary: To enable DNSSEC on multiple domains.
              value: >-
                domain-0=example0.com&domain-1=example1.com&domain-2=example2.com
            single:
              summary: To enable DNSSEC on a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_dnssec
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          disabled:
                            example.com: 1
                        properties:
                          disabled:
                            description: >-
                              An array of objects that contain the domains for
                              which the system disabled DNSSEC.
                            properties:
                              additionalProperties:
                                description: >-
                                  Information about the domains for which the
                                  system

                                  disabled DNSSEC.


                                  * `1` — Disabled.

                                  * `0` — The system failed to disable DNSSEC.


                                  **Note:**


                                  This return's name is the `domain` parameter's
                                  value.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable DNSSEC
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              disable_dnssec \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/disable_dnssec?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_disable_dnssec.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_disable_dnssec.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/disable_dnssec/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_disable_dnssec.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_disable_dnssec.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'disable_dnssec',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 60
  /DNSSEC/enable_dnssec:
    get:
      description: |-
        This function enables DNSSEC on the domain.

        **Note:**

         * After you enable DNSSEC on the domain, you **must** add the DNS records to your registrar.
         * You **cannot** modify the DNSSEC security key. To make any changes, you **must** disable (and delete) and re-create the DNSSEC security key.

        **Important:**

          When you disable the [DNS role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: enable_dnssec
      parameters:
        - description: |-
            The domain on which to enable DNSSEC.

            **Note:**

             To enable DNSSEC on multiple domains, increment the parameter name. For example: `domain-0`, `domain-1`, `domain-2`.
          examples:
            multiple:
              summary: To enable DNSSEC on multiple domains.
              value: >-
                domain-0=example0.com&domain-1=example1.com&domain-2=example2.com
            single:
              summary: To enable DNSSEC on a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
        - description: |-
            Whether to activate the newly-created key.

            * `1` — Activate the key.
            * `0` — Do **not** activate the key.
          in: query
          name: active
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            The algorithm that the system uses to generate the security key.

            * `5` — RSA/SHA-1
            * `6` — DSA-NSEC3-SHA1
            * `7` — RSASHA1-NSEC3-SHA1
            * `8` — RSA/SHA-256
            * `10` — RSA/SHA-512
            * `13` — ECDSA Curve P-256 with SHA-256
            * `14` — ECDSA Curve P-384 with SHA-384

            **Note:**

             We recommend that you use `ECDSA Curve P-256 with SHA-256` if your registrar supports it.
          in: query
          name: algo_num
          required: false
          schema:
            default: 8
            example: 8
            maximum: 255
            minimum: 0
            type: integer
        - description: >-
            The manner in which the system creates the security key.


            * `simple` — Use a single key for both KSK and ZSK. Use this value
            when the `algo_nom` parameter is greater than `8`.

            * `classic` — Use separate keys for KSK and ZSK. Use this value when
            the `algo_nom` parameter is equal to or less than `8`.
          in: query
          name: key_setup
          required: false
          schema:
            default: classic
            enum:
              - simple
              - classic
            example: classic
            type: string
        - description: >-
            The number of times that the system rehashes the first resource
            record hash operation.


            A non-negative integer less than `501`.


            Prior to cPanel version 132, this defaulted to `7`.
          in: query
          name: nsec3_iterations
          required: false
          schema:
            default: 0
            example: 7
            maximum: 500
            minimum: 0
            type: integer
        - description: "Whether NSEC3 will operate in Narrow or Inclusive mode.\n\nIn Narrow mode, PowerDNS sends out white lies about the next secure record. Rather than query the resource record in the database, PowerDNS sends the hash plus\_`1`\_as the next secure record.\n\n* `1` — Narrow mode.\n* `0` — Inclusive mode."
          in: query
          name: nsec3_narrow
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether the system will create records for all delegations.

            * `1` — Create records for all delegations.
            * `0` — Create records only for secure delegations.

            **Note:**

             **Only** select `1` if you **must** create records for all delegations.
          in: query
          name: nsec3_opt_out
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: "A hexadecimal string that the system appends to the domain name before it applies the hash function to the name. For more information about the salt value, read the\_[RFC 5155](https://tools.ietf.org/html/rfc5155#section-3.1.5) documentation.\n\nBeginning with cPanel version 132, this parameter also accepts the literal value `-` to indicate that no salt should be used.\n\nIf you do not declare a value, the system defaults to no salt. Prior to cPanel version 132, if you did not declare a value, the system defaulted to a random 64-bit value."
          in: query
          name: nsec3_salt
          required: false
          schema:
            default: '-'
            example: 1A2B3C4D5E6F
            format: hex
            maxLength: 255
            type: string
        - description: >-
            Whether the domain will use [Next Secure
            Record](https://tools.ietf.org/html/rfc4470) (NSEC) or NSEC3
            semantics.


            * `1` — Use NSEC3 semantics.

            * `0` — Use NSEC semantics.


            **Note:**

             If you use NSEC semantics (`0`), the system ignores the other NSEC3 options.
          in: query
          name: use_nsec3
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_dnssec
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          enabled:
                            example.com:
                              enabled: 1
                              new_key_id: '1'
                              nsec_version: NSEC3
                        properties:
                          enabled:
                            description: >-
                              An object containing information about the domains
                              for which the system enabled DNSSEC.
                            properties:
                              additionalProperties:
                                description: >-
                                  Information about the domain for which the
                                  system

                                  enabled DNSSEC.


                                  **Note:**


                                  This return's name is the `domain` parameter's
                                  value.
                                properties:
                                  enabled:
                                    description: >-
                                      Whether the system enabled DNSSEC.


                                      * `1` — The system enabled DNSSEC.

                                      * `0` — The system failed to enable
                                      DNSSEC.
                                    enum:
                                      - 1
                                      - 0
                                    type: integer
                                  new_key_id:
                                    description: The assigned security key ID.
                                    example: 1
                                    type: integer
                                  nsec_version:
                                    description: |-
                                      The version of DNSSEC the system used.

                                      * `NSEC3`
                                      * `NSEC`
                                    enum:
                                      - NSEC3
                                      - NSEC
                                    type: string
                                type: object
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable DNSSEC
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              enable_dnssec \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/enable_dnssec?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_enable_dnssec.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_enable_dnssec.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/enable_dnssec/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_enable_dnssec.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_enable_dnssec.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'enable_dnssec',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 60
  /DNSSEC/export_zone_dnskey:
    get:
      description: >-
        This function exports a domain's DNSKEY record value.


        **Important:**


        When you disable the [_DNS_ role](https://go.cpanel.net/serverroles),
        the system **disables** this function.
      operationId: export_zone_dnskey
      parameters:
        - description: The domain from which to fetch the DNSKEY record value.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The DNSSEC record's ID.
          in: query
          name: key_id
          required: true
          schema:
            example: 12345
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: export_zone_dnskey
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          dnskey:
                            description: The DNSKEY record value.
                            example: >-
                              AwEAAch8SGW4vE6PjFWA9rbUm0AfTq+gJ0HC/nLu+2axdWHBIStt9lsOzKDorAr4vlmhlJzEzA62s96xp6mZ7XHUyWnkFwLs8obo6upL2in4h1ToOxzVl3lTs8O+kWtDq5/h1nwFlPDs9zpLJhlkTCtx2OTGbvimEYeqwPolUuSQR/Yb
                            type: string
                          key_id:
                            description: The DNSSEC record's ID.
                            example: 12345
                            minimum: 1
                            type: integer
                          success:
                            description: >-
                              Whether the DNSKEY record exported successfully.


                              * `1` - The system exported the record
                              successfully.

                              * `0` - The system failed to export the record.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export DNSKEY record value
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              export_zone_dnskey \
              domain='example.com' \
              key_id='12345'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/export_zone_dnskey?domain=example.com&key_id=12345
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_export_zone_dnskey.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_export_zone_dnskey.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/export_zone_dnskey/,
                {
                    'domain' => 'example.com',
                    'key_id' => '12345',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_export_zone_dnskey.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_export_zone_dnskey.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'export_zone_dnskey',
                array (
                    'domain' => 'example.com',
                    'key_id' => '12345',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DNSSEC/export_zone_key:
    get:
      description: >-
        This function exports a DNSSEC security key.


        **Important:**


        When you disable the [DNS](https://go.cpanel.net/serverroles) role, the
        system **disables** this function.
      operationId: export_zone_key
      parameters:
        - description: The security key's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The security key's ID.
          in: query
          name: key_id
          required: true
          schema:
            example: 12345
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: export_zone_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          domain:
                            description: The security key's domain.
                            example: example.com
                            format: domain
                            type: string
                          key_content:
                            description: >-
                              The content of the key, which includes the
                              algorithm.
                            example: >+
                              Private-key-format: v1.2

                              Algorithm: 8 (RSASHA256)

                              Modulus:
                              9i8AlGZkwKJj6HYZX+9OcOyCMQ0L9eHBaTg2Y83cVBSaIyiIWo54QpuiJykiuFYYHihOi+LW8vfU9A9jXLBs7DaeDkXO49OqYxfgD1vwmztJeXCQlmgxqUeD181gtSTNO43uUMkCisZft+OsJ96bdUof1UeJ1+IuSENBr1TZgYjmzBgIkmjdv8T5muPaaDfeOISLJKGOG2gI0xlyQ39ppd3CeB90cpIvFpCGjNC8nGvIqN4oyny6NftcEhaRFudbEhB6t2gI362wS5ohERK1F1rBTt+mqUwszCv46Y6p3Za3PsebWK7fR6ITnsW7KGyn3r8BxpJTHlHMwOtBPosaXw==

                              PublicExponent: AQAB

                              PrivateExponent:
                              MZO5nCkatSh+0jumVImO1HLsrRAhjnzORHBLk8HLUytq9xWckBAM6+0HtLc2BMVhygD4AHfILdn3CsdmjS4CYXeGUP2B8qOXtqkCOFWdmMVRwKEInSGSjrKWPIlhplko84tbqO0yE9xrPk8dRlIwIGizDHKBsfYct/TDb5m4y7rvEHcBSm2DZz7AQL1qqC/WYI54qxHFXTId+nKsYMx/alRUV3AOSL20VSgL56VcM1luFS76ylDIWEOrQVyTFCtEcHvw3FLIOEVCM/CAErLFNlFdXHnYcRYnG/oXcsPW0DjpPNrqx8iaAOuhYFd/pu9CvKQnxYLLqXByOkSUIO3ggQ==

                              Prime1:
                              /mtiBD3gJ5Yu5ARsLew4eohRAobl4c3Bt9Gw62wmHiOJfgjbnY91H/bxc/ilnQh92yZUfxfm5z6FXEqluh0ZN3BOQTwzUEuTT9Pn00FhRfemL0UMpHn0BkoXCLwjs1XRyI0hXTOhGhH7XVczuYw/S7kWT5Cmfo4MODZ6cooR8SE=

                              Prime2:
                              97aFfZxJcTYTKkZTc7yeUQVWTtKF25L780TRuCiG83hTSNKlmuWE2bAU/Cl2CX2NdW5sBmO5z9fEI5rA8LhuWHlKF82cXg1h50CsXkaAhFKrThMmb6SRSjIksxlz7rtK777z4En/V9v3l1yKcQ5eSQYQRHg1cCkn6NNlZPZ2G38=

                              Exponent1:
                              LoHarQPSken2MGBOliZ0PJHmnRujsh82pi+Cs8ZVQXUlkRB1dNvggTNW9+gf/hCrUQA0ufbYkrTvE+vhV6AyF9xDsdEbYDYwe4s0+X0eFvgqPMHWicpxPSUWCNa7f/DUJGEIFE13yZg35twl7GkiuOjglzLN/Jxix3PN9loe5YE=

                              Exponent2:
                              Mya4iAimzb7p1DfzcZnIY1ijyuEEDSRb7I8Qc2PDAjGdmRMOaV7twPnwS2XQXwNTG6Wyntsm+nlGokeJgevDtXdOSn4FxRIkXllnfow2a5yajSO9Mx6bdePG2kjuPKTmQ3195JnDJYRhqxrL566c351l7I2aE1AcUqKcdG3EU8c=

                              Coefficient:
                              T4dFDz5pQhVUQSjV0hhKHHZ1wBxiXdZeCFIfbyypWEdxGXdX2lIN264u9cGQhI+iExTEjZCaYASMBzOqnIhkHhj0M1DGYrhRCdTpgxmDwdcHniRl/XMxPGqpmsP4WFCBxmIbr3SdnqoiPMXix0SjWkHTisq5i09DBMNGIGQyqS8=

                            type: string
                          key_id:
                            description: The security key's ID.
                            example: 12345
                            minimum: 1
                            type: integer
                          key_tag:
                            description: The security key's internal identifier.
                            example: 51640
                            minimum: 1
                            type: integer
                          key_type:
                            description: |-
                              The security key's signing type.

                              * `CSK` - Combined Signing Key.
                              * `KSK` - Key Signing Key.
                              * `ZSK` - Zone Signing Key.
                            enum:
                              - CSK
                              - KSK
                              - ZSK
                            example: KSK
                            type: string
                          success:
                            description: |-
                              Whether the function succeeded.

                              * `1` - The function succeeded.
                              * `0` - The function failed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export DNSSEC security key
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              export_zone_key \
              domain='example.com' \
              key_id='12345'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/export_zone_key?domain=example.com&key_id=12345
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_export_zone_key.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_export_zone_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/export_zone_key/,
                {
                    'domain' => 'example.com',
                    'key_id' => '12345',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_export_zone_key.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_export_zone_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'export_zone_key',
                array (
                    'domain' => 'example.com',
                    'key_id' => '12345',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /DNSSEC/fetch_ds_records:
    get:
      description: >-
        This function fetches a domain's Delegation of Signing (DS) records.


        **Important:**


        When you disable the [DNS role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: fetch_ds_records
      parameters:
        - description: |-
            The domain from which to fetch DS records.

            **Note:**

             To enable DNSSEC on multiple domains, increment the parameter name. For example: `domain-0`, `domain-1`, `domain-2`.
          examples:
            multiple:
              summary: To fetch DS records on multiple domains.
              value: >-
                domain-0=example0.com&domain-1=example1.com&domain-2=example2.com
            single:
              summary: To fetch DS records on a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_ds_records
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          example.com:
                            keys:
                              '33930':
                                active: 1
                                algo_desc: RSA/SHA-256
                                algo_num: '8'
                                algo_tag: RSASHA256
                                bits: 1024
                                created: '1590002705'
                                flags: 256
                                key_id: 2
                                key_tag: 33930
                                key_type: ZSK
                                privatekey: >-
                                  Private-key-format: v1.2

                                  Algorithm: 8 (RSASHA256)

                                  Modulus:
                                  wcZl882v587qKmt3M7+y6u+kzSgCvfgyiSGQHE2EulDcAnfEmz/ryanXMveHGBsO4L/GynYYUUsGvD2jHK1ITh8CeISiqmbUmPolf9HLQgwcT5pVcvwJ0Wmzpw5Ukmx67N7TTX+yieI5OyflP23GnJYQ5EQUzBu/DhdxhL90hYU=

                                  PublicExponent: AQAB

                                  PrivateExponent:
                                  EnoBdKrTMA5Jw7u1hQitXbt2Al3jTQvifbLmk9xMYJufLtkOtSL2L6dzLpftmL3TwFho8xspnG7D+KUD7ZMURrwxnLlqTttaL2PeaYJdQ184ezuflExppkDkdTEOqcIUuSylfAbyIdeGkVFuWr0cdjM9OFKMAkoYaVeAUP0SYU0=

                                  Prime1:
                                  4eslxBBwyvXzmFqKx5TTiHfU7EHIAxUru3ykOMqD2tVMHbRAq5AMKZL6ZhuTXk8mnGppEfC6qqNKnf3VT5jLxw==

                                  Prime2:
                                  25OUAsWWAJrQ4uLytsXoSbjHsVyh61DgZ4S4n2Mv7RsSHt0Q/VcuyvHXuAKb8Y0XCYczZBtEW+ZoPte/HHnsUw==

                                  Exponent1:
                                  Xkb4AqLtvvT2i8y0/2avA9MmCtXEtuydzGbOTVjNv4OlePvgxPee67aHQhcd34xeS4XohPEVpOHx4I6t9sKHvw==

                                  Exponent2:
                                  ulZDBRcodNrs6Z4u22yX8/gbfyhdQJUh2reG9bv2sAB/wEJaaKPT0eXqav3L2PKfCjbyJcH+AP9G+A2e4UuWgQ==

                                  Coefficient:
                                  mynNLSgStpQMktIEdysefyOg5jpXE3VeDZF6fbEOUg+E2ZnLBkLu4KPrriCwfl+cLagwgzx2M6wV/1QWkm8vPQ==
                              nsec_details:
                                nsec3_hash_algo_desc: SHA-1
                                nsec3_hash_algo_num: '1'
                                nsec3_iterations: '3'
                                nsec3_narrow: 1
                                nsec3_opt_out: '0'
                                nsec3_salt: fa1ac2c1rd7fbab4
                                nsec_version: NSEC3
                        properties:
                          additionalProperties:
                            description: >-
                              An object containing the domain's DS record
                              information.


                              **Note:**


                              The return's name is the domain's name.
                            properties:
                              keys:
                                description: The DS keys on the requested domain.
                                properties:
                                  additionalProperties:
                                    description: >-
                                      The information related to the domain's
                                      DNSSEC record.


                                      **Note:**


                                      The return's name is the `key_tag`
                                      return's integer value.
                                    properties:
                                      active:
                                        description: |-
                                          Whether the DS key is active.

                                          * `1` - Active.
                                          * `0` - Inactive.
                                        enum:
                                          - 0
                                          - 1
                                        example: 1
                                        type: integer
                                      algo_desc:
                                        description: |-
                                          A description of the algorithm
                                          that the DS key uses.
                                        example: RSA/SHA-256
                                        type: string
                                      algo_num:
                                        description: >-
                                          The algorithm the system generated for
                                          the security key.


                                          * `5` - RSA/SHA-1

                                          * `6` - DSA-NSEC3-SHA1

                                          * `7` - RSASHA1-NSEC3-SHA1

                                          * `8` - RSA/SHA-256

                                          * `10` - RSA/SHA-512

                                          * `13` - ECDSA Curve P-256 with SHA-256

                                          * `14` - ECDSA Curve P-384 with SHA-384
                                        enum:
                                          - 5
                                          - 6
                                          - 7
                                          - 8
                                          - 10
                                          - 13
                                          - 14
                                        example: 8
                                        type: integer
                                      algo_tag:
                                        description: >-
                                          The short-form reference to the
                                          algorithm.
                                        example: RSASHA256
                                        type: string
                                      bits:
                                        description: The DS key's size, in bits.
                                        example: 2048
                                        minimum: 1
                                        multipleOf: 64
                                        type: integer
                                      created:
                                        description: The key's creation time.
                                        example: 1590002705
                                        format: unix_timestamp
                                        type: integer
                                      digests:
                                        description: |-
                                          The information that
                                           the registrar uses to populate the DS records.
                                        items:
                                          properties:
                                            algo_desc:
                                              description: |-
                                                A description of the algorithm
                                                 that the DS key uses.
                                              example: SHA-256
                                              type: string
                                            algo_num:
                                              description: >-
                                                A IETF-recognized DNSSEC Algorithm
                                                Number.
                                              example: 2
                                              minimum: 1
                                              type: integer
                                            digest:
                                              description: The actual digest in the DS record.
                                              example: >-
                                                4de3e58f1238fb7fc7caa84389ef6fa27d42572c35f1152c7f2ea3b899400019
                                              type: string
                                          type: object
                                        type: array
                                      flags:
                                        description: >-
                                          An integer that determines the
                                          `key_type` value.


                                          * `256` - A Zone Signing Key (ZSK).

                                          * `257` - A Combined Signing Key (CSK)
                                          or Key Signing Key (KSK).
                                        enum:
                                          - 256
                                          - 257
                                        example: 257
                                        type: integer
                                      key_id:
                                        description: PowerDNS's internal identifier.
                                        example: 1
                                        minimum: 1
                                        type: integer
                                      key_tag:
                                        description: The DS key's identification number.
                                        example: 34519
                                        minimum: 1
                                        type: integer
                                      key_type:
                                        description: |-
                                          The DS key's signing type.
                                          * `CSK` - Combined Signing Key.
                                          * `KSK` - Key Signing Key.
                                          * `ZSK` - Zone Signing Key.
                                        enum:
                                          - CSK
                                          - KSK
                                          - ZSK
                                        example: KSK
                                        type: string
                                      privatekey:
                                        description: The DS key's private key, in ISC format.
                                        example: >-
                                          Private-key-format: v1.2

                                          Algorithm: 8 (RSASHA256)

                                          Modulus:
                                          wcZl882v587qKmt3M7+y6u+kzSgCvfgyiSGQHE2EulDcAnfEmz/ryanXMveHGBsO4L/GynYYUUsGvD2jHK1ITh8CeISiqmbUmPolf9HLQgwcT5pVcvwJ0Wmzpw5Ukmx67N7TTX+yieI5OyflP23GnJYQ5EQUzBu/DhdxhL90hYU=

                                          PublicExponent: AQAB

                                          PrivateExponent:
                                          EnoBdKrTMA5Jw7u1hQitXbt2Al3jTQvifbLmk9xMYJufLtkOtSL2L6dzLpftmL3TwFho8xspnG7D+KUD7ZMURrwxnLlqTttaL2PeaYJdQ184ezuflExppkDkdTEOqcIUuSylfAbyIdeGkVFuWr0cdjM9OFKMAkoYaVeAUP0SYU0=

                                          Prime1:
                                          4eslxBBwyvXzmFqKx5TTiHfU7EHIAxUru3ykOMqD2tVMHbRAq5AMKZL6ZhuTXk8mnGppEfC6qqNKnf3VT5jLxw==

                                          Prime2:
                                          25OUAsWWAJrQ4uLytsXoSbjHsVyh61DgZ4S4n2Mv7RsSHt0Q/VcuyvHXuAKb8Y0XCYczZBtEW+ZoPte/HHnsUw==

                                          Exponent1:
                                          Xkb4AqLtvvT2i8y0/2avA9MmCtXEtuydzGbOTVjNv4OlePvgxPee67aHQhcd34xeS4XohPEVpOHx4I6t9sKHvw==

                                          Exponent2:
                                          ulZDBRcodNrs6Z4u22yX8/gbfyhdQJUh2reG9bv2sAB/wEJaaKPT0eXqav3L2PKfCjbyJcH+AP9G+A2e4UuWgQ==

                                          Coefficient:
                                          mynNLSgStpQMktIEdysefyOg5jpXE3VeDZF6fbEOUg+E2ZnLBkLu4KPrriCwfl+cLagwgzx2M6wV/1QWkm8vPQ==
                                        type: string
                                    type: object
                                type: object
                              nsec_details:
                                description: >-
                                  An object containing the [Next Secure
                                  Record](https://tools.ietf.org/html/rfc4470)
                                  (NSEC) information for the selected domain.


                                  **Note:**

                                   If the domain uses NSEC semantics, only the `nsec_version` return appears in the object.
                                properties:
                                  nsec3_hash_algo_desc:
                                    description: >-
                                      A description of the NSEC3 key's
                                      algorithm.
                                    example: SHA-1
                                    type: string
                                  nsec3_hash_algo_num:
                                    description: The DNSSEC Digest Algorithm Number.
                                    example: 1
                                    type: integer
                                  nsec3_iterations:
                                    description: >-
                                      The number of times that the system
                                      rehashes the first hash operation.
                                    example: 12
                                    type: integer
                                  nsec3_narrow:
                                    description: >-
                                      Whether NSEC3 will operate in Narrow or
                                      Inclusive mode.


                                      * `1` - Narrow mode.

                                      * `0` - Inclusive mode.


                                      **Note:**

                                       For more information about these modes, read [PowerDNS's DNSSEC documentation](https://doc.powerdns.com/authoritative/dnssec/intro.html).
                                    enum:
                                      - 0
                                      - 1
                                    example: 1
                                    type: integer
                                  nsec3_opt_out:
                                    description: >-
                                      Whether NSEC3 will create records for all
                                      delegations or only for secure
                                      delegations.


                                      * `1` - Create records for all
                                      delegations.

                                      * `0` - Create records only for secure
                                      delegations.
                                    enum:
                                      - 0
                                      - 1
                                    example: 1
                                    type: integer
                                  nsec3_salt:
                                    description: >-
                                      The salt value that PowerDNS uses in the
                                      hashes.


                                      **Note:**

                                       For more information about the salt value, read [RFC 5155](https://tools.ietf.org/html/rfc5155#section-3.1.5).
                                    example: fa1ac2c1rd7fbab4
                                    format: hex
                                    type: string
                                  nsec_version:
                                    description: >-
                                      Whether the domain uses NSEC or [Next
                                      Secure Record version
                                      3](https://tools.ietf.org/html/rfc5155)
                                      (NSEC3) [Domain Name Security
                                      Extensions](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions)
                                      (DNSSEC) semantics.


                                      * `NSEC`

                                      * `NSEC3`
                                    enum:
                                      - NSEC
                                      - NSEC3
                                    example: NSEC
                                    type: string
                                type: object
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domain's DS records
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              fetch_ds_records \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/fetch_ds_records?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_fetch_ds_records.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_fetch_ds_records.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/fetch_ds_records/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_fetch_ds_records.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_fetch_ds_records.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'fetch_ds_records',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /DNSSEC/import_zone_key:
    get:
      description: >-
        This function imports a DNSSEC security key.


        **Important:**


        When you disable the [DNS role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: import_zone_key
      parameters:
        - description: The security key's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The security key data that the
            [`pdnsutil`](https://doc.powerdns.com/authoritative/manpages/pdnsutil.1.html)

            utility's `export-zone-key` call returns.
          in: query
          name: key_data
          required: true
          schema:
            example: >-
              Private-key-format:%20v1.2%0AAlgorithm:%2013%20\(ECDSAP256SHA256\)%0APrivateKey:%20xCM281KtWE9oCsUX8fP1hDZ02/X7JCjp4QZA/DZjfX0=%0A%0A
            type: string
        - description: |-
            The security key's type.

            * `ksk`
            * `zsk`
          in: query
          name: key_type
          required: true
          schema:
            enum:
              - ksk
              - zsk
            example: ksk
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: import_zone_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          domain: example.com
                          new_key_id: '1'
                          success: 1
                        properties:
                          domain:
                            description: >-
                              The domain for which the system imported the zone
                              key.
                            example: example.com
                            format: domain
                            type: string
                          error:
                            description: >-
                              An error message that describes why the system
                              could not import the security key.


                              **Note:**


                              The function **only** displays this return when
                              the `success` return is a `0` value.
                            example: >-
                              Error: Invalid key_id or domain specified: No such
                              key present for domain.
                            type: string
                          new_key_id:
                            description: The security key's ID.
                            example: '1'
                            type: string
                          success:
                            description: >-
                              Whether the system imported the security key.


                              * `1` - The system imported the security key.

                              * `0` - The system **failed** to import the
                              security key.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add DNSSEC security key
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              import_zone_key \
              domain='example.com' \
              key_type='ksk' \
              key_data=$'Private-key-format:%20v1.2%0AAlgorithm:%2013%20\\(ECDSAP256SHA256\\)%0APrivateKey:%20xCM281KtWE9oCsUX8fP1hDZ02/X7JCjp4QZA/DZjfX0=%0A%0A'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/import_zone_key?domain=example.com&key_type=ksk&key_data=Private-key-format%3a%2520v1.2%250AAlgorithm%3a%252013%2520%5c%28ECDSAP256SHA256%5c%29%250APrivateKey%3a%2520xCM281KtWE9oCsUX8fP1hDZ02%2fX7JCjp4QZA%2fDZjfX0%3d%250A%250A
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_import_zone_key.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_import_zone_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/import_zone_key/,
                {
                    'domain' => 'example.com',
                    'key_type' => 'ksk',
                    'key_data' => 'Private-key-format:%20v1.2%0AAlgorithm:%2013%20\(ECDSAP256SHA256\)%0APrivateKey:%20xCM281KtWE9oCsUX8fP1hDZ02/X7JCjp4QZA/DZjfX0=%0A%0A',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_import_zone_key.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_import_zone_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'import_zone_key',
                array (
                    'domain' => 'example.com',
                    'key_type' => 'ksk',
                    'key_data' => 'Private-key-format:%20v1.2%0AAlgorithm:%2013%20\(ECDSAP256SHA256\)%0APrivateKey:%20xCM281KtWE9oCsUX8fP1hDZ02/X7JCjp4QZA/DZjfX0=%0A%0A',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /DNSSEC/remove_zone_key:
    get:
      description: >-
        This function removes a DNSSEC security key.


        **Important:**


        When you disable the [DNS role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: remove_zone_key
      parameters:
        - description: The security key's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The security key's ID.
          in: query
          name: key_id
          required: true
          schema:
            example: 1
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_zone_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          domain: example.com
                          key_id: '12'
                          success: 1
                        properties:
                          domain:
                            description: >-
                              The domain for which the system removed a security
                              key.
                            example: example.com
                            format: domain
                            type: string
                          error:
                            description: >-
                              An error message that describes why the system
                              could not remove the security key.


                              **Note:**


                              The function **only** displays this return when
                              the `success` return is a `0` value.
                            example: >-
                              Error: Invalid key_id or domain specified: No such
                              key present for domain.
                            type: string
                          key_id:
                            description: The security key's ID.
                            example: '1'
                            type: string
                          success:
                            description: >-
                              Whether the system removed the security key.


                              * `1` — The system removed the security key.

                              * `0` — The system failed to remove the security
                              key.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove DNSSEC security key
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              remove_zone_key \
              domain='example.com' \
              key_id='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/remove_zone_key?domain=example.com&key_id=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_remove_zone_key.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_remove_zone_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/remove_zone_key/,
                {
                    'domain' => 'example.com',
                    'key_id' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_remove_zone_key.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_remove_zone_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'remove_zone_key',
                array (
                    'domain' => 'example.com',
                    'key_id' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /DNSSEC/set_nsec3:
    get:
      description: >-
        This function configures the domain to use [Next Secure Record
        3](https://tools.ietf.org/html/rfc4470) (NSEC3) semantics.


        **Important:**

          When you disable the [DNS role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: set_nsec3
      parameters:
        - description: The domain on which to enable NSEC3 semantics.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The number of times that the system re-executes the first resource
            record hash operation.
          in: query
          name: nsec3_iterations
          required: true
          schema:
            example: 7
            maximum: 500
            minimum: 0
            type: integer
        - description: >-
            Whether NSEC3 will operate in Narrow mode or Inclusive mode. In
            Narrow mode, PowerDNS sends out white lies about the next secure
            record. Rather than query the resource record in the database,
            PowerDNS sends the hash plus 1 as the next secure record.

            * `1` - Narrow mode. * `0` - Inclusive mode.
          in: query
          name: nsec3_narrow
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether the system will create records for all delegations.

            * `1` - Create records for all delegations.
            * `0` - Create records **only** for secure delegations.

            **Note:**

              **Only** select `1` if you **must** create records for all delegations.
          in: query
          name: nsec3_opt_out
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The salt value that PowerDNS uses in the hashes. For more
            information about the salt value, read the [RFC 5155
            documentation](https://tools.ietf.org/html/rfc5155).

            Beginning with cPanel version 132, this parameter also accepts the
            literal value `-` to indicate that no salt should be used.
          in: query
          name: nsec3_salt
          required: true
          schema:
            example: 1A2B3C4D5E6F
            format: hex
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_nsec3
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            additionalProperties:
                              description: |-
                                Whether the system enabled NSEC3 on the domain.

                                  * `1` - Enabled.
                                  * `0` - The system failed to enable NSEC3.
                              enum:
                                - 0
                                - 1
                              type: integer
                            description: >-
                              Contains the domains for which the system enabled
                              NSEC3.


                              **Note:**


                              This return's name is the `domain` parameter's
                              value.
                            example:
                              example1.com: 1
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update domain to use NSEC3
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              set_nsec3 \
              domain='example.com' \
              nsec3_opt_out='0' \
              nsec3_iterations='0' \
              nsec3_narrow='1' \
              nsec3_salt='-'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/set_nsec3?domain=example.com&nsec3_opt_out=0&nsec3_iterations=0&nsec3_narrow=1&nsec3_salt=-
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_set_nsec3.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_set_nsec3.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/set_nsec3/,
                {
                    'domain' => 'example.com',
                    'nsec3_opt_out' => '0',
                    'nsec3_iterations' => '0',
                    'nsec3_narrow' => '1',
                    'nsec3_salt' => '-',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_set_nsec3.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_set_nsec3.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'set_nsec3',
                array (
                    'domain' => 'example.com',
                    'nsec3_opt_out' => '0',
                    'nsec3_iterations' => '0',
                    'nsec3_narrow' => '1',
                    'nsec3_salt' => '-',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 60
  /DNSSEC/unset_nsec3:
    get:
      description: "This function configures the domain to use [Next Secure Record](https://tools.ietf.org/html/rfc4470) (NSEC) semantics instead of Next Secure Record 3\_(NSEC3) semantics.\n\n**Important:**\n\n  When you disable the [DNS role](https://go.cpanel.net/serverroles), the system **disables** this function."
      operationId: unset_nsec3
      parameters:
        - description: >-
            The domain on which to disable NSEC3 semantics and use NSEC
            semantics.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unset_nsec3
                    type: string
                  module:
                    description: The name of the module called.
                    example: DNSSEC
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          disabled:
                            example.com: 1
                        properties:
                          disabled:
                            description: >-
                              A list of the domains for which the system
                              disabled NSEC3.
                            properties:
                              additionalProperties:
                                description: >-
                                  Whether the system disabled NSEC3 on the
                                  domain.


                                  * `1` — Disabled.

                                  * `0` — The system failed to disable NSEC3.


                                  **Note:**


                                  This return's name is the `domain` parameter's
                                  value.
                                enum:
                                  - 1
                                  - 0
                                type: integer
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update domain to use NSEC
      tags:
        - DNSSEC
        - DNS Security
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DNSSEC \
              unset_nsec3 \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DNSSEC/unset_nsec3?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DNSSEC_unset_nsec3.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DNSSEC_unset_nsec3.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DNSSEC/,
                q/unset_nsec3/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DNSSEC_unset_nsec3.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DNSSEC_unset_nsec3.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DNSSEC',
                'unset_nsec3',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 60
  /DirectoryIndexes/get_indexing:
    get:
      description: >-
        This function returns the directory indexing settings for a directory on
        the cPanel account and its subdirectories.
      operationId: get_indexing
      parameters:
        - description: The directory for which to check the indexing type.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_indexing
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryIndexes
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The directory's indexing type.

                          - standard  The directory uses directory indexing with
                          standard formatting.

                          - disabled  The directory doesn't use directory
                          indexing.

                          - inherit  The directory uses the system's default
                          settings.

                          - fancy  The directory uses directory indexing with
                          Apache FancyIndexing directive. The directory will
                          include additional information such as file size and
                          the date of the file's last update.
                        example: disabled
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return directory indexing settings
      tags:
        - DirectoryIndexes
        - Directory Indexes
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryIndexes \
              get_indexing \
              dir='/home/example/example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryIndexes/get_indexing?dir=%2fhome%2fexample%2fexample.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryIndexes_get_indexing.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryIndexes_get_indexing.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryIndexes/,
                q/get_indexing/,
                {
                    'dir' => '/home/example/example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryIndexes_get_indexing.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryIndexes_get_indexing.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryIndexes',
                'get_indexing',
                array (
                    'dir' => '/home/example/example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryIndexes/list_directories:
    get:
      description: >-
        This function returns the [directory
        indexing](https://go.cpanel.net/cpaneldocsIndexes) settings of the
        subdirectories in a directory.
      operationId: DirectoryIndexes-list_directories
      parameters:
        - description: >-
            The absolute path of the directory for which to return indexing
            information.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_directories
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryIndexes
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          children:
                            description: >-
                              Subdirectories and their indexing information.


                              **Note:**


                              The function returns an object for each
                              subdirectory in a directory.
                            items:
                              properties:
                                path:
                                  description: The subdirectory's absolute path.
                                  example: /home/example/example.com/cgi-bin
                                  format: path
                                  type: string
                                state:
                                  description: The subdirectory's indexing information.
                                  properties:
                                    index_type:
                                      $ref: '#/components/schemas/index_type'
                                  type: object
                              type: object
                            type: array
                          current:
                            description: >-
                              The user's current directory and its indexing
                              information.
                            properties:
                              path:
                                description: The current directory's absolute path.
                                example: /home/example/example.com
                                format: path
                                type: string
                              state:
                                description: The current directory's indexing information.
                                properties:
                                  index_type:
                                    $ref: '#/components/schemas/index_type'
                                type: object
                            type: object
                          home:
                            description: >-
                              The user's home directory and its indexing
                              information.
                            properties:
                              path:
                                description: The home directory's absolute path.
                                example: /home/example
                                format: path
                                type: string
                              state:
                                description: >-
                                  An object containing the home directory's
                                  indexing information.
                                properties:
                                  index_type:
                                    $ref: '#/components/schemas/index_type'
                                type: object
                            type: object
                          parent:
                            description: >-
                              The current directory’s parent directory and its
                              indexing information.
                            properties:
                              path:
                                description: The parent directory's absolute path.
                                example: /home/example
                                format: path
                                type: string
                              state:
                                description: The parent directory's indexing information.
                                properties:
                                  index_type:
                                    $ref: '#/components/schemas/index_type'
                                type: object
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return subdirectories directory indexing settings
      tags:
        - DirectoryIndexes
        - Directory Indexes
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryIndexes \
              list_directories \
              dir='/home/example/example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryIndexes/list_directories?dir=%2fhome%2fexample%2fexample.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryIndexes_list_directories.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryIndexes_list_directories.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryIndexes/,
                q/list_directories/,
                {
                    'dir' => '/home/example/example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryIndexes_list_directories.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryIndexes_list_directories.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryIndexes',
                'list_directories',
                array (
                    'dir' => '/home/example/example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryIndexes/set_indexing:
    get:
      description: "This function configures the\_[directory indexing](https://go.cpanel.net/cpaneldocsIndexes)\_settings for a directory on the cPanel account."
      operationId: set_indexing
      parameters:
        - description: The directory for which to manage directory indexing.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
        - description: >-
            The type of directory indexing.


            * `standard` — The directory uses directory indexing with standard
            formatting.

            * `disabled` — The directory doesn't use directory indexing.

            * `inherit` — The directory uses the system's default settings.

            * `fancy` — The directory uses directory indexing with Apache
            FancyIndexing directive. The directory will include additional
            information such as file size and the date of the file's last
            update.
          in: query
          name: type
          required: true
          schema:
            enum:
              - standard
              - disabled
              - inherit
              - fancy
            example: inherit
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_indexing
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryIndexes
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The directory's indexing type.

                          * `standard` — The directory uses directory indexing
                          with standard formatting.

                          * `disabled` — The directory doesn't use directory
                          indexing.

                          * `inherit` — The directory uses the system's default
                          settings.

                          * `fancy` — The directory uses directory indexing with
                          Apache FancyIndexing directive. The directory will
                          include additional information such as file size and
                          the date of the file's last update.
                        enum:
                          - standard
                          - disabled
                          - inherit
                          - fancy
                        example: disabled
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update directory indexing settings
      tags:
        - DirectoryIndexes
        - Directory Indexes
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryIndexes \
              set_indexing \
              dir='/home/example/example.com' \
              type='inherit'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryIndexes/set_indexing?dir=%2fhome%2fexample%2fexample.com&type=inherit
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryIndexes_set_indexing.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryIndexes_set_indexing.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryIndexes/,
                q/set_indexing/,
                {
                    'dir' => '/home/example/example.com',
                    'type' => 'inherit',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryIndexes_set_indexing.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryIndexes_set_indexing.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryIndexes',
                'set_indexing',
                array (
                    'dir' => '/home/example/example.com',
                    'type' => 'inherit',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryPrivacy/add_user:
    get:
      description: >-
        This function adds a user who can access a protected directory on the
        cPanel account.
      operationId: add_user
      parameters:
        - description: The directory to add users to.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
        - description: The password for the user.
          in: query
          name: password
          required: true
          schema:
            example: 123456luggage
            type: string
        - description: The username of the user who can access the directory.
          in: query
          name: user
          required: true
          schema:
            example: example1
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryPrivacy
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add authorized user for protected directory
      tags:
        - DirectoryPrivacy
        - Directory Privacy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryPrivacy \
              add_user \
              dir='/home/example/example.com' \
              user='example1' \
              password='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryPrivacy/add_user?dir=%2fhome%2fexample%2fexample.com&user=example1&password=123456luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryPrivacy_add_user.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_add_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryPrivacy/,
                q/add_user/,
                {
                    'dir' => '/home/example/example.com',
                    'user' => 'example1',
                    'password' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryPrivacy_add_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_add_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryPrivacy',
                'add_user',
                array (
                    'dir' => '/home/example/example.com',
                    'user' => 'example1',
                    'password' => '123456luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryPrivacy/configure_directory_protection:
    get:
      description: >-
        This function enables or disables password protection for a directory on
        the cPanel account.
      operationId: configure_directory_protection
      parameters:
        - description: |-
            The name of the directory protection authorization instance.

            **Note:**

            **Only** use this parameter when you enable password protection.
          in: query
          name: authname
          required: true
          schema:
            example: protectandserve
            type: string
        - description: >-
            The absolute or relative directory path for which to enable or
            disable password protection.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
        - description: |-
            Whether to enable password protection for the directory.
            * `1` - Enable.
            * `0` - Disable.
          in: query
          name: enabled
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: configure_directory_protection
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryPrivacy
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          auth_name:
                            description: The authentication resource name.
                            example: protectandserve
                            type: string
                          auth_type:
                            description: |-
                              The directory's authentication type.
                              * `Basic`
                              * `None`
                            enum:
                              - Basic
                              - None
                            example: Basic
                            type: string
                          passwd_file:
                            description: The path to the directory's password file.
                            example: /home/example/.htpasswds/example.com/passwd
                            format: path
                            type: string
                          protected:
                            description: |-
                              Whether the directory uses password protection.
                              * `1` - Protected.
                              * `0` - **Not** protected.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable or disable protected directory
      tags:
        - DirectoryPrivacy
        - Directory Privacy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryPrivacy \
              configure_directory_protection \
              dir='/home/example/example.com' \
              enabled='1' \
              authname='protectandserve'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryPrivacy/configure_directory_protection?dir=%2fhome%2fexample%2fexample.com&enabled=1&authname=protectandserve
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            DirectoryPrivacy_configure_directory_protection.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_configure_directory_protection.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryPrivacy/,
                q/configure_directory_protection/,
                {
                    'dir' => '/home/example/example.com',
                    'enabled' => '1',
                    'authname' => 'protectandserve',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            DirectoryPrivacy_configure_directory_protection.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_configure_directory_protection.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryPrivacy',
                'configure_directory_protection',
                array (
                    'dir' => '/home/example/example.com',
                    'enabled' => '1',
                    'authname' => 'protectandserve',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryPrivacy/delete_user:
    get:
      description: >-
        This function deletes a user who can access a protected directory on the
        cPanel account.
      operationId: delete_user
      parameters:
        - description: >-
            The absolute directory path on the cPanel account from which to
            remove a user.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
        - description: The username to remove from the directory.
          in: query
          name: user
          required: true
          schema:
            example: example1
            format: username
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryPrivacy
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete authorized user for protected directory
      tags:
        - DirectoryPrivacy
        - Directory Privacy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryPrivacy \
              delete_user \
              dir='/home/example/example.com' \
              user='example1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryPrivacy/delete_user?dir=%2fhome%2fexample%2fexample.com&user=example1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryPrivacy_delete_user.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_delete_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryPrivacy/,
                q/delete_user/,
                {
                    'dir' => '/home/example/example.com',
                    'user' => 'example1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryPrivacy_delete_user.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_delete_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryPrivacy',
                'delete_user',
                array (
                    'dir' => '/home/example/example.com',
                    'user' => 'example1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryPrivacy/is_directory_protected:
    get:
      description: This function confirms whether a directory uses password protection.
      operationId: is_directory_protected
      parameters:
        - description: >-
            The absolute directory path on the cPanel account to check for
            password protection.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_directory_protected
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryPrivacy
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          auth_name:
                            description: The authentication resource name.
                            example: Protected 'example.com'
                            type: string
                          auth_type:
                            description: |-
                              The directory's authentication type.
                              * `Basic`
                              * `None`
                            enum:
                              - Basic
                              - None
                            example: Basic
                            type: string
                          passwd_file:
                            description: The path to the directory's password file.
                            example: /home/example/.htpasswds/example.com/passwd
                            format: path
                            type: string
                          protected:
                            description: |-
                              Whether the directory uses password protection.
                              * `1` - Protected.
                              * `0` - **Not** protected.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether directory uses password protection
      tags:
        - DirectoryPrivacy
        - Directory Privacy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryPrivacy \
              is_directory_protected \
              dir='/home/example/example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryPrivacy/is_directory_protected?dir=%2fhome%2fexample%2fexample.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryPrivacy_is_directory_protected.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_is_directory_protected.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryPrivacy/,
                q/is_directory_protected/,
                {
                    'dir' => '/home/example/example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryPrivacy_is_directory_protected.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_is_directory_protected.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryPrivacy',
                'is_directory_protected',
                array (
                    'dir' => '/home/example/example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryPrivacy/list_directories:
    get:
      description: >-
        This function returns the privacy status of the subdirectories in a
        directory.
      operationId: DirectoryPrivacy-list_directories
      parameters:
        - description: >-
            The directory path for which to return the subdirectories' privacy
            information.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_directories
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryPrivacy
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          children:
                            description: >-
                              An array of objects containing subdirectories and
                              their privacy

                              information.


                              **Note:**


                              The function returns an object for each
                              subdirectory in a directory.
                            items:
                              properties:
                                path:
                                  description: The subdirectory's directory path.
                                  example: /home/example/example.com/cgi-bin
                                  format: path
                                  type: string
                                state:
                                  description: The subdirectory's privacy information.
                                  properties:
                                    auth_name:
                                      description: The authentication resource name.
                                      example: Protected 'example.com'
                                      type: string
                                    auth_type:
                                      description: |-
                                        The subdirectory's authentication type.

                                        * `Basic`
                                        * `None`
                                      enum:
                                        - Basic
                                        - None
                                      example: Basic
                                      type: string
                                    passwd_file:
                                      description: >-
                                        The absolute file path to the
                                        subdirectory's password file.
                                      example: >-
                                        /home/example/.htpasswds/example.com/passwd
                                      format: path
                                      type: string
                                    protected:
                                      description: |-
                                        Whether the subdirectory is protected.

                                        * `1` — Protected.
                                        * `0` — **Not** protected.
                                      enum:
                                        - 1
                                        - 0
                                      example: 1
                                      type: integer
                                  type: object
                              type: object
                            type: array
                          current:
                            description: >-
                              The user's current directory and its privacy
                              information.
                            properties:
                              path:
                                description: The current directory's path.
                                example: /home/example/example.com
                                format: path
                                type: string
                              state:
                                description: >-
                                  The current subdirectory's privacy
                                  information.
                                properties:
                                  auth_name:
                                    description: The authentication resource name.
                                    example: protected
                                    type: string
                                  auth_type:
                                    description: |-
                                      The directory's authentication type.

                                      * `Basic`
                                      * `None`
                                    enum:
                                      - Basic
                                      - None
                                    example: Basic
                                    type: string
                                  passwd_file:
                                    description: >-
                                      The absolute file path to the directory's
                                      password file.
                                    example: >-
                                      /home/example/.htpasswds/example.com/passwd
                                    format: path
                                    type: string
                                  protected:
                                    description: |-
                                      Whether the directory is protected.

                                      * `1` — Protected.
                                      * `0` — **Not** protected.
                                    enum:
                                      - 1
                                      - 0
                                    example: 1
                                    type: integer
                                type: object
                            type: object
                          home:
                            description: >-
                              The user's home directory and its privacy
                              information.
                            properties:
                              path:
                                description: The home directory's absolute path.
                                example: /home/example
                                format: path
                                type: string
                              state:
                                description: The home directory's privacy information.
                                properties:
                                  auth_name:
                                    description: The authentication resource name.
                                    example: protected
                                    type: string
                                  auth_type:
                                    description: |-
                                      The home directory's authentication type.

                                      * `Basic`
                                      * `None`
                                    enum:
                                      - Basic
                                      - None
                                    example: Basic
                                    type: string
                                  passwd_file:
                                    description: >-
                                      The absolute file path to the home
                                      directory's password file.
                                    example: >-
                                      /home/example/.htpasswds/example.com/passwd
                                    format: path
                                    type: string
                                  protected:
                                    description: |-
                                      Whether the home directory is protected.

                                      * `1` — Protected.
                                      * `0` — **Not** protected.
                                    enum:
                                      - 1
                                      - 0
                                    example: 1
                                    type: integer
                                type: object
                            type: object
                          parent:
                            description: >-
                              The parent directory of the current directory and
                              its privacy information.
                            properties:
                              path:
                                description: >-
                                  The parent directory's absolute directory
                                  path.
                                example: /home/example
                                format: path
                                type: string
                              state:
                                description: The parent directory's privacy information.
                                properties:
                                  auth_name:
                                    description: The authentication resource name.
                                    example: protected
                                    type: string
                                  auth_type:
                                    description: >-
                                      The parent directory's authentication
                                      type.


                                      * `Basic`

                                      * `None`
                                    enum:
                                      - Basic
                                      - None
                                    example: Basic
                                    type: string
                                  passwd_file:
                                    description: >-
                                      The absolute file path to the parent
                                      directory's password file.
                                    example: >-
                                      /home/example/.htpasswds/example.com/passwd
                                    format: path
                                    type: string
                                  protected:
                                    description: |-
                                      Whether the subdirectory is protected.

                                      * `1` — Protected.
                                      * `0` — **Not** protected.
                                    enum:
                                      - 1
                                      - 0
                                    example: 1
                                    type: integer
                                type: object
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return privacy status of subdirectories
      tags:
        - DirectoryPrivacy
        - Directory Privacy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryPrivacy \
              list_directories \
              dir='/home/example/example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryPrivacy/list_directories?dir=%2fhome%2fexample%2fexample.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryPrivacy_list_directories.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_list_directories.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryPrivacy/,
                q/list_directories/,
                {
                    'dir' => '/home/example/example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryPrivacy_list_directories.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_list_directories.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryPrivacy',
                'list_directories',
                array (
                    'dir' => '/home/example/example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryPrivacy/list_users:
    get:
      description: >-
        This function returns the users who can access a password-protected
        directory on the cPanel account.
      operationId: DirectoryPrivacy::list_users
      parameters:
        - description: >-
            The password-protected directory for which to return authorized
            users.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_users
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryPrivacy
                    type: string
                  result:
                    properties:
                      data:
                        description: list of users who can access the directory.
                        example:
                          - example1
                          - example2
                        items:
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return authorized users for protected directory
      tags:
        - DirectoryPrivacy
        - Directory Privacy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryPrivacy \
              list_users \
              dir='/home/example/example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryPrivacy/list_users?dir=%2fhome%2fexample%2fexample.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryPrivacy_list_users.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_list_users.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryPrivacy/,
                q/list_users/,
                {
                    'dir' => '/home/example/example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryPrivacy_list_users.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryPrivacy_list_users.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryPrivacy',
                'list_users',
                array (
                    'dir' => '/home/example/example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /DirectoryProtection/list_directories:
    get:
      description: |-
        This function returns the
        [leech protection](https://go.cpanel.net/cpaneldocsLeechProtection)
        settings of the subdirectories in a directory.
      operationId: DirectoryProtection-list_directories
      parameters:
        - description: >-
            The absolute or relative file path in the user's `home` directory
            for which to return leech protection information.
          in: query
          name: dir
          required: true
          schema:
            example: /home/example/example.com
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_directories
                    type: string
                  module:
                    description: The name of the module called.
                    example: DirectoryProtection
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          children:
                            description: >-
                              A list of subdirectories and their leech
                              protection information.


                              **Note:**


                              The function returns a list for each subdirectory
                              in a directory.
                            items:
                              properties:
                                path:
                                  description: The subdirectory's absolute directory path.
                                  example: /home/example/example.com/cgi-bin
                                  format: path
                                  type: string
                                state:
                                  description: >-
                                    A object containing the subdirectory's leech
                                    protection information.
                                  properties:
                                    has_leech_protection:
                                      description: |-
                                        The directory's leech protection status.

                                        * `1` — Leech protection is enabled.
                                        * `0` — Leech protection is disabled.
                                      enum:
                                        - 1
                                        - 0
                                      example: 1
                                      type: integer
                                  type: object
                              type: object
                            type: array
                          current:
                            description: >-
                              The user's current directory and its leech
                              protection information.
                            properties:
                              path:
                                description: The current directory's absolute file path.
                                example: /home/example/example.com
                                format: path
                                type: string
                              state:
                                description: >-
                                  An object containing the current directory's
                                  leech protection information.
                                properties:
                                  has_leech_protection:
                                    description: >-
                                      The current directory's leech protection
                                      status.


                                      * `1` — Leech protection is enabled.

                                      * `0` — Leech protection is disabled.
                                    enum:
                                      - 1
                                      - 0
                                    example: 1
                                    type: integer
                                type: object
                            type: object
                          home:
                            description: >-
                              The user's `home` directory and its leech
                              protection information.
                            properties:
                              path:
                                description: >-
                                  The `home` directory's absolute directory
                                  path.
                                example: /home/example
                                format: path
                                type: string
                              state:
                                description: >-
                                  A object containing the `home` directory's
                                  leech protection information.
                                properties:
                                  has_leech_protection:
                                    description: >-
                                      The home directory's leech protection
                                      status.


                                      * `1` — Leech protection is enabled.

                                      * `0` — Leech protection is disabled.
                                    enum:
                                      - 1
                                      - 0
                                    example: 1
                                    type: integer
                                type: object
                            type: object
                          parent:
                            description: >-
                              The parent directory of the current directory and
                              its leech protection information.
                            properties:
                              path:
                                description: >-
                                  The parent directory's absolute directory
                                  path.
                                example: /home/example
                                format: path
                                type: string
                              state:
                                description: >-
                                  An object containing the parent directory's
                                  leech protection information.
                                properties:
                                  has_leech_protection:
                                    description: >-
                                      The parent directory's leech protection
                                      status.


                                      * `1` — Leech protection is enabled.

                                      * `0` — Leech protection is disabled.
                                    enum:
                                      - 1
                                      - 0
                                    example: 1
                                    type: integer
                                type: object
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Directory Protection settings
      tags:
        - DirectoryProtection
        - Directory Protection
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DirectoryProtection \
              list_directories \
              dir='/home/example/example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DirectoryProtection/list_directories?dir=%2fhome%2fexample%2fexample.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DirectoryProtection_list_directories.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DirectoryProtection_list_directories.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DirectoryProtection/,
                q/list_directories/,
                {
                    'dir' => '/home/example/example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DirectoryProtection_list_directories.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DirectoryProtection_list_directories.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DirectoryProtection',
                'list_directories',
                array (
                    'dir' => '/home/example/example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /Domain/convert_temporary_to_registered:
    post:
      description: >-
        This function converts a temporary domain into a registered domain and
        moves its document root files

        to the new document root location.


        **Note:**


        * For more information about temporary domains, read our [Temporary
        Domains](https://go.cpanel.net/cp-temporary-domain) documentation.

        * You cannot use this function to convert a cPanel account's main
        domain.
      operationId: domain-convert_temporary_to_registered
      parameters:
        - description: A valid temporary domain on the account.
          in: query
          name: domain
          required: true
          schema:
            example: wonderful-fushsia-owl.10-20-30-40.cpanel.site
            format: domain
            type: string
        - description: A valid domain name.
          in: query
          name: registered
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The path to the domain's document root directory. If you do not
            specify a

            value, this parameter defaults to the domain's name.


            **Note:**


            The function will create a symlink in place of the previous
            temporary domain's

            document root directory. The symlink will point to the registered
            domain's

            document root.
          in: query
          name: docroot
          required: false
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: convert_temporary_to_registered
                    type: string
                  module:
                    description: The name of the module called.
                    example: Domain
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          message:
                            description: A message describing the result of the conversion.
                            example: >-
                              Domain
                              wonderful-fushsia-owl.10-20-30-40.cpanel.site
                              successfully converted to example.com
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: |-
                          - 1 - Success.
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: List of warnings generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Convert a temporary domain to a registered domain
      tags:
        - Domain
        - Temporary Domains
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Domain \
              convert_temporary_to_registered \
              domain=wonderful-fushsia-owl.10-20-30-40.cpanel.site \
              registered=example.com
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Domain/convert_temporary_to_registered?domain=wonderful-fushsia-owl.10-20-30-40.cpanel.site&registered=example.com
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 130
  /Domain/is_temporary_domain:
    get:
      description: >-
        This function determines whether a domain is temporary.


        **Note:**


        For more information about temporary domains, read our [Temporary
        Domains](https://go.cpanel.net/cp-temporary-domain) documentation.
      operationId: domain-is_temporary_domain
      parameters:
        - description: A domain on the cPanel account.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_temporary_domain
                    type: string
                  module:
                    description: The name of the module called.
                    example: Domain
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the domain is a temporary domain.
                          * `1` - The domain is a temporary domain.
                          * `0` -  The domains is **not** a temporary domain.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API call.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: Request was successful.
      summary: Return whether a domain is temporary
      tags:
        - Domain
        - Temporary Domains
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Domain \
              is_temporary_domain \
              domain=example.com
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Domain/is_temporary_domain?domain=example.com
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 130
  /DomainInfo/domains_data:
    get:
      description: >-
        This function lists user data for the cPanel account's domains.


        **Note:**


        This function retrieves data from the `/var/cpanel/userdata/user/domain`
        file, where `user`

        represents the cPanel account username and `domain` represents the
        domain. For this reason,

        actual output may not contain all of the returns that this document
        lists.
      operationId: domains_data
      parameters:
        - description: "The function's return format.\n\n* `hash` —\_Use a hash format. The function will return objects based on the domain type.\n* `list` —\_Use a list format. The function will return an array of objects, where each object is a domain."
          in: query
          name: format
          required: false
          schema:
            default: hash
            enum:
              - hash
              - list
            example: hash
            type: string
        - description: >-
            Whether to hide temporary domains from the response arrays.


            * `1` — Hide temporary domains from `addon_domains`, `sub_domains`,
            and `parked_domains` arrays.

            * `0` — Return all domains, including the temporary domains.
          in: query
          name: hide_temporary_domains
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
        - description: "Whether to return the secure redirect status of the addon domains.\n\n* `1` —\_Return the status.\n* `0` —\_Do **not** return the status."
          in: query
          name: return_https_redirects_status
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              examples:
                hash:
                  summary: Output in hash return format.
                  value:
                    data:
                      addon_domains:
                        - all_aliases_valid: '0'
                          can_https_redirect: '0'
                          documentroot: /home/user/public_html/seconddomain.com
                          domain: seconddomain.com
                          group: user
                          hascgi: '1'
                          homedir: /home/user
                          ip: 192.168.0.128
                          ipv6: null
                          is_https_redirecting: '0'
                          is_temporary: '0'
                          no_cache_update: '0'
                          owner: root
                          serveradmin: webmaster@seconddomain.example.com
                          serveralias: >-
                            seconddomain.com www.seconddomain.com
                            www.seconddomain.example.com
                          servername: seconddomain.example.com
                          type: addon_domain
                          usecanonicalname: 'Off'
                          user: user
                          userdirprotect: ''
                        - all_aliases_valid: '0'
                          can_https_redirect: '0'
                          documentroot: /home/user/public_html/subdomain
                          domain: exampledomain.com
                          group: user
                          hascgi: '1'
                          homedir: /home/user
                          ip: 192.168.0.128
                          ipv6: null
                          is_https_redirecting: '0'
                          is_temporary: '0'
                          no_cache_update: '0'
                          owner: root
                          serveradmin: webmaster@subdomain.example.com
                          serveralias: >-
                            exampledomain.com www.exampledomain.com
                            www.subdomain.example.com
                          servername: subdomain.example.com
                          type: addon_domain
                          usecanonicalname: 'Off'
                          user: user
                          userdirprotect: ''
                        - all_aliases_valid: '0'
                          can_https_redirect: '0'
                          documentroot: /home/user/addondomain/home/dir
                          domain: addondomain.com
                          group: user
                          hascgi: '1'
                          homedir: /home/user
                          ip: 192.168.0.128
                          ipv6: null
                          is_https_redirecting: '0'
                          is_temporary: '0'
                          main_domain:
                            all_aliases_valid: '0'
                            can_https_redirect: '0'
                            customlog:
                              - format: combined
                                target: /usr/local/apache/domlogs/example.com
                              - format: '"%{%s}t %I .\n%{%s}t %O ."'
                                target: >-
                                  /usr/local/apache/domlogs/example.com-bytes_log
                            documentroot: /home/user/public_html
                            domain: example.com
                            group: user
                            hascgi: '1'
                            homedir: /home/user
                            ifmodulemodsuphpc:
                              group: user
                            ip: 192.168.0.128
                            is_https_redirecting: '0'
                            options: ExecCGI Includes
                            owner: root
                            port: '80'
                            scriptalias:
                              - path: /home/user/public_html/cgi-bin
                                url: /cgi-bin/
                              - path: /home/user/public_html/cgi-bin/
                                url: /cgi-bin/
                            serveradmin: webmaster@example.com
                            serveralias: >-
                              parkeddomain.com www.parkeddomain.com
                              www.example.com
                            servername: example.com
                            type: main_domain
                            usecanonicalname: 'Off'
                            user: user
                            userdirprotect: ''
                          no_cache_update: '0'
                          owner: root
                          parked_capable_of_https_redirects:
                            - parkeddomain.com
                          parked_domains:
                            - parkeddomain.com
                          parked_with_https_redirects:
                            - parkeddomain.com
                          serveradmin: webmaster@subdomain.example.com
                          serveralias: >-
                            addondomain.com www.addondomain.com
                            www.subdomain.example.com
                          servername: subdomain.example.com
                          sub_domains:
                            - all_aliases_valid: '0'
                              can_https_redirect: '0'
                              documentroot: /home/user/public_html/sub
                              domain: sub.example.com
                              group: user
                              hascgi: '1'
                              homedir: /home/user
                              ip: 192.168.0.128
                              ipv6: null
                              is_https_redirecting: '0'
                              is_temporary: '0'
                              no_cache_update: '0'
                              owner: root
                              serveradmin: webmaster@sub.example.com
                              serveralias: www.sub.example.com
                              servername: sub.example.com
                              type: sub_domain
                              usecanonicalname: 'Off'
                              user: user
                              userdirprotect: ''
                          type: addon_domain
                          usecanonicalname: 'Off'
                          user: user
                          userdirprotect: ''
                    errors: null
                    messages: null
                    metadata: null
                    status: 1
                list:
                  summary: Output in list return format.
                  value:
                    data:
                      - all_aliases_valid: '0'
                        can_https_redirect: '0'
                        customlog:
                          - format: combined
                            target: /usr/local/apache/domlogs/example.com
                          - format: '"%{%s}t %I .\n%{%s}t %O ."'
                            target: /usr/local/apache/domlogs/example.com-bytes_log
                        documentroot: /home/user/public_html
                        domain: example.com
                        group: user
                        hascgi: '1'
                        homedir: /home/user
                        ifmodulemodsuphpc:
                          group: user
                        ip: 192.168.0.128
                        is_https_redirecting: '0'
                        is_temporary: '0'
                        options: ExecCGI Includes
                        owner: root
                        port: '80'
                        scriptalias:
                          - path: /home/user/public_html/cgi-bin
                            url: /cgi-bin/
                          - path: /home/user/public_html/cgi-bin/
                            url: /cgi-bin/
                        serveradmin: webmaster@example.com
                        serveralias: parkeddomain.com www.parkeddomain.com www.example.com
                        servername: example.com
                        type: main_domain
                        usecanonicalname: 'Off'
                        user: user
                        userdirprotect: '1'
                      - parked_with_https_redirects:
                          - parkeddomain.com
                      - parked_capable_of_https_redirects:
                          - zippy.nugs.test
                      - all_aliases_valid: '0'
                        can_https_redirect: '0'
                        documentroot: /home/user/public_html/seconddomain.com
                        domain: seconddomain.com
                        group: user
                        hascgi: '1'
                        homedir: /home/user
                        ip: 192.168.0.128
                        ipv6: null
                        is_https_redirecting: '0'
                        is_temporary: '0'
                        no_cache_update: '0'
                        owner: root
                        serveradmin: webmaster@seconddomain.example.com
                        serveralias: >-
                          seconddomain.com www.seconddomain.com
                          www.seconddomain.example.com
                        servername: seconddomain.example.com
                        type: addon_domain
                        usecanonicalname: 'Off'
                        user: user
                        userdirprotect: ''
                      - all_aliases_valid: '0'
                        can_https_redirect: '0'
                        documentroot: /home/user/public_html/subdomain
                        domain: exampledomain.com
                        group: user
                        hascgi: '1'
                        homedir: /home/user
                        ip: 192.168.0.128
                        ipv6: null
                        is_https_redirecting: '0'
                        is_temporary: '0'
                        no_cache_update: '0'
                        owner: root
                        serveradmin: webmaster@subdomain.example.com
                        serveralias: >-
                          exampledomain.com www.exampledomain.com
                          www.subdomain.example.com
                        servername: subdomain.example.com
                        type: addon_domain
                        usecanonicalname: 'Off'
                        user: user
                        userdirprotect: ''
                      - all_aliases_valid: '0'
                        can_https_redirect: '0'
                        documentroot: /home/user/addondomain/home/dir
                        domain: addondomain.com
                        group: user
                        hascgi: '1'
                        homedir: /home/user
                        ip: 192.168.0.128
                        ipv6: null
                        is_https_redirecting: '0'
                        is_temporary: '0'
                        no_cache_update: '0'
                        owner: root
                        serveradmin: webmaster@subdomain.example.com
                        serveralias: >-
                          addondomain.com www.addondomain.com
                          www.subdomain.example.com
                        servername: subdomain.example.com
                        type: addon_domain
                        usecanonicalname: 'Off'
                        user: user
                        userdirprotect: ''
                      - all_aliases_valid: '0'
                        can_https_redirect: '0'
                        documentroot: /home/user/public_html/sub
                        domain: sub.example.com
                        group: user
                        hascgi: '1'
                        homedir: /home/user
                        ip: 192.168.0.128
                        ipv6: null
                        is_https_redirecting: '0'
                        is_temporary: '0'
                        no_cache_update: '0'
                        owner: root
                        serveradmin: webmaster@sub.example.com
                        serveralias: www.sub.example.com
                        servername: sub.example.com
                        type: sub_domain
                        usecanonicalname: 'Off'
                        user: user
                        userdirprotect: ''
                    errors: null
                    messages: null
                    metadata:
                      transformed: 1
                    status: 1
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: domains_data
                    type: string
                  module:
                    description: The name of the module called.
                    example: DomainInfo
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object containing information about a cPanel
                          account's domains. The output of this function
                          changes, based on the `format` parameter value.
                        oneOf:
                          - $ref: '#/components/schemas/HashOutput'
                          - $ref: '#/components/schemas/ListOutput'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return all domains' hosting configuration
      tags:
        - DomainInfo
        - Domain Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DomainInfo \
              domains_data
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DomainInfo/domains_data
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DomainInfo_domains_data.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DomainInfo_domains_data.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DomainInfo/,
                q/domains_data/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DomainInfo_domains_data.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DomainInfo_domains_data.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DomainInfo',
                'domains_data'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /DomainInfo/list_domains:
    get:
      description: >-
        This function lists the cPanel account's domains.


        **Note:**


        For this function to succeed, the `/var/cpanel/userdata/username/main`
        file (where `username` represents the authenticated user) **must**
        possess the correct permissions. If a permissions error occurs, this
        function returns blank values for **all** of its returns and does
        **not** return an error message.
      operationId: list_domains
      parameters:
        - description: >-
            Whether to hide temporary domains from the response arrays.


            * `1` — Hide temporary domains from the `addon_domains`,
            `sub_domains`, and `parked_domains` arrays, and from the
            `main_domain` field.

            * `0` — Return all domains, including the temporary domains.
          in: query
          name: hide_temporary_domains
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: DomainInfo
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          addon_domains:
                            description: >-
                              An array of string values that lists the addon
                              domains on the cPanel account.
                            items:
                              example: addondomain.com
                              format: domain
                              type: string
                            type: array
                          main_domain:
                            description: The cPanel account's main domain.
                            example: example.com
                            format: domain
                            type: string
                            nullable: true
                          parked_domains:
                            description: >-
                              An array of string values that lists the parked
                              domains on the cPanel account.
                            items:
                              example: parkeddomain.com
                              format: domain
                              type: string
                            type: array
                          sub_domains:
                            description: >-
                              An array of string values that lists the
                              subdomains on the cPanel account.
                            items:
                              example: subdomain.example.com
                              format: domain
                              type: string
                            type: array
                          is_temporary:
                            description: Whether the domain is a temporary domain.
                            type: object
                            additionalProperties:
                              type: integer
                              enum:
                                - 0
                                - 1
                              description: |-
                                * `1` — The domain is temporary.
                                * `0` — The domain is not temporary.
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's domains
      tags:
        - DomainInfo
        - Domain Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DomainInfo \
              list_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DomainInfo/list_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DomainInfo_list_domains.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DomainInfo_list_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DomainInfo/,
                q/list_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DomainInfo_list_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DomainInfo_list_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DomainInfo',
                'list_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /DomainInfo/main_domain_builtin_subdomain_aliases:
    get:
      description: >-
        This function returns the built-in subdomain aliases for an account's
        main domain.


        **Note:**

          This function retrieves data from the `/var/cpanel/userdata/user/domain` file, where `user` represents the cPanel account username and `domain` represents the domain. For this reason, actual output may not contain all of the returns that this document lists.
      operationId: main_domain_builtin_subdomain_aliases
      parameters:
        - description: >-
            Whether to hide domain aliases if the main domain is a temporary
            domain.


            * `1` — Return empty array if the main domain is a temporary domain.

            * `0` — Show aliases regardless of domain type.
          in: query
          name: hide_temporary_domains
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: main_domain_builtin_subdomain_aliases
                    type: string
                  module:
                    description: The name of the module called.
                    example: DomainInfo
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          A list of the built-in subdomain aliases for the
                          account's main domain.
                        example:
                          - mail
                          - www
                        items:
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return built-in subdomain aliases
      tags:
        - DomainInfo
        - Domain Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DomainInfo \
              main_domain_builtin_subdomain_aliases
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DomainInfo/main_domain_builtin_subdomain_aliases
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            DomainInfo_main_domain_builtin_subdomain_aliases.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DomainInfo_main_domain_builtin_subdomain_aliases.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DomainInfo/,
                q/main_domain_builtin_subdomain_aliases/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            DomainInfo_main_domain_builtin_subdomain_aliases.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DomainInfo_main_domain_builtin_subdomain_aliases.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DomainInfo',
                'main_domain_builtin_subdomain_aliases'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /DomainInfo/primary_domain:
    get:
      description: This function returns the cPanel account's main domain.
      operationId: primary_domain
      parameters:
        - description: |-
            Whether to hide temporary domains from the response.

            * `1` — Return `null` if the main domain is a temporary domain.
            * `0` — Return the main domain if it's a temporary domain.
          in: query
          name: hide_temporary_domains
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: primary_domain
                    type: string
                  module:
                    description: The name of the module called.
                    example: DomainInfo
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          primary_domain:
                            description: >-
                              The cPanel account's main domain.

                              ** Note: **

                              This return's value will be `null` if the
                              `hide_temporary_domains` parameter is set to `1`
                              and the main domain is a temporary domain.
                            example: example.com
                            type: string
                            nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return the cPanel account's primary domain
      tags:
        - DomainInfo
        - Domain Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DomainInfo \
              primary_domain
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DomainInfo/primary_domain
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DomainInfo_primary_domain.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DomainInfo_primary_domain.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DomainInfo/,
                q/primary_domain/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DomainInfo_primary_domain.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DomainInfo_primary_domain.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DomainInfo',
                'primary_domain'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /DomainInfo/single_domain_data:
    get:
      description: |-
        This function lists user data for a domain.

        **Important:**

          This function retrieves data from the `/var/cpanel/userdata/user/domain` file, where `user` represents the cPanel account username and `domain` represents the domain.
          * Because aliases (parked domains) do **not** use a user data file, this function **cannot** query information for aliases. To retrieve information for an alias, specify the associated main or addon domain.
          * Due to differences in user data files, the function's actual output may not contain all of the returns that this document lists.
      operationId: single_domain_data
      parameters:
        - description: |-
            The domain on the cPanel account.

            **Important:**

            Do **not** specify an alias (parked domain).
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            Whether to hide temporary domains from the returned values.


            * `1` — Return an error if the requested domain is a temporary
            domain.

            * `0` — Return all domains, including the temporary domains.


            **Note:**


            If you set this parameter's value to `1` and the requested domain is
            temporary,

            the function will return an error similar to the following example:
            `Domain [example.com] is a temporary

            domain and `hide_temporary_domains` is enabled.`
          in: query
          name: hide_temporary_domains
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
        - description: |-
            Whether to return the secure redirect status of the addon domains.
            * `1` - Return status.
            * `0` - Do **not** return status.
          in: query
          name: return_https_redirect_status
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: single_domain_data
                    type: string
                  module:
                    description: The name of the module called.
                    example: DomainInfo
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          all_aliases_valid:
                            description: >-
                              Whether a valid SSL certificate exists on the
                              domain's aliases.

                              * `1` - A valid SSL certificate exists on the
                              aliases.

                              * `0` - A valid SSL certificate does **not** exist
                              on the aliases.


                              **Important:**


                              This return only appears if you set the
                              `return_https_redirects_status` parameter to `1`.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          can_https_redirect:
                            description: >-
                              Whether a valid SSL certificate exists or AutoSSL
                              runs on the domain.

                              * `1` - A valid SSL certificate exists or AutoSSL
                              runs.

                              * `0` - A valid SSL certificate does **not**
                              exist, and AutoSSL does not run.


                              **Important:**


                              This return only appears if you set the
                              `return_https_redirects_status` parameter to `1`.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          customlog:
                            description: An object containing Apache log information.
                            properties:
                              domain:
                                description: >-
                                  The `target` log file's domain. An [Apache
                                  log](http://httpd.apache.org/docs/2.2/mod/mod_log_config.html)
                                  domain. Generally, this value is `combined`.
                                example: combined
                                type: string
                              target:
                                description: The absolute path to the domain's log file.
                                example: /usr/local/apache/domlogs/example.com
                                format: path
                                type: string
                            type: object
                          documentroot:
                            description: The absolute path to the domain's document root.
                            example: /home/user/public_html/
                            format: path
                            type: string
                          domain:
                            description: The domain name on the cPanel account.
                            example: example.com
                            format: domain
                            type: string
                          group:
                            description: The domain's group name.
                            example: user
                            type: string
                          hascgi:
                            description: |-
                              Whether CGI is enabled for the domain.
                              * `1` - Enabled.
                              * `0` - Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          homedir:
                            description: The absolute path to the account's home directory.
                            example: /home/user
                            format: path
                            type: string
                          ifmodulemodsuphpc:
                            description: >-
                              An object containing information about PHP scripts
                              and suPHP.
                            properties:
                              group:
                                description: >-
                                  If suPHP is enabled, the group that PHP
                                  scripts run as.
                                example: user
                                type: string
                            type: object
                          ip:
                            description: The domain's IP address.
                            example: 192.168.0.128
                            format: ipv4
                            type: string
                          is_https_redirecting:
                            description: >-
                              Whether the domain redirects to https.

                              * `1` - Redirects.

                              * `0` - Does **not** redirect.


                              **Important:**


                              This return only appears if you set the
                              `return_https_redirects_status` parameter to `1`.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          is_temporary:
                            description: |-
                              Whether the domain is a temporary domain.
                              * `1` — The domain is temporary.
                              * `0` — The domain is not temporary.
                            type: integer
                            enum:
                              - 0
                              - 1
                          options:
                            description: The Apache `Options` directive for the domain.
                            example: ExecCGI Includes
                            type: string
                          owner:
                            description: >-
                              The WHM account (root or a reseller) that owns the
                              cPanel account.
                            example: root
                            format: username
                            type: string
                          phpopenbasedirprotect:
                            description: >-
                              The domain's `open_basedir` setting.

                              * `1` - Enabled.

                              * `0` - Disabled.


                              **Note:**


                              In EasyApache 4, change this directive in the
                              *Editor Mode* section of WHM's

                              [*MultiPHP INI
                              Editor*](https://go.cpanel.net/whmdocsMultiPHPINIEditor)
                              interface

                              (*WHM >> Home >> Software >> MultiPHP INI
                              Editor*).
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          port:
                            description: Apache's port to access the domain.
                            example: 80
                            maximum: 65335
                            minimum: 1
                            type: integer
                          scriptalias:
                            description: An object containing CGI information.
                            properties:
                              path:
                                description: >-
                                  The absolute path to the domain's CGI
                                  directory.
                                example: /home/user/public_html/cgi-bin
                                format: path
                                type: string
                              url:
                                description: The domain's CGI directory.
                                example: /cgi-bin/
                                format: url-path
                                type: string
                            type: object
                          serveradmin:
                            description: >-
                              The domain's administrator's contact email
                              address.
                            example: webmaster@example.com
                            format: email
                            type: string
                          serveralias:
                            description: A space-separated list of the domain's aliases.
                            example: >-
                              parkeddomain.com www.parkeddomain.com
                              www.example.com
                            type: string
                          servername:
                            description: The domain's identifier on the server.
                            example: example.com
                            format: domain
                            type: string
                          type:
                            description: >-
                              The domain type.

                              * `addon_domain` - The domain is an addon domain.

                              * `sub_domain` - The domain is a subdomain.

                              * `main_domain` - The domain is the account's main
                              domain.

                              * `parked_domain` - The domain is a parked domain
                              (domain alias).
                            enum:
                              - addon_domain
                              - sub_domain
                              - main_domain
                              - parked_domain
                            example: main_domain
                            type: string
                          usecanonicalname:
                            description: |-
                              The domain's Canonical Name (CNAME) setting.
                              * `On` - Use the CNAME.
                              * `Off` - Do **not** use the CNAME.
                            enum:
                              - 'On'
                              - 'Off'
                            example: 'Off'
                            type: string
                          user:
                            description: The cPanel account's username.
                            example: user
                            format: username
                            type: string
                          userdirprotect:
                            description: >-
                              The domain's [Apache `mod_userdir`
                              Tweak](https://go.cpanel.net/whmdocsApachemod_userdirTweak)
                              setting.

                              * `1` - Enabled.

                              * `0` - Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domain's hosting configuration
      tags:
        - DomainInfo
        - Domain Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DomainInfo \
              single_domain_data \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DomainInfo/single_domain_data?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DomainInfo_single_domain_data.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DomainInfo_single_domain_data.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DomainInfo/,
                q/single_domain_data/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DomainInfo_single_domain_data.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DomainInfo_single_domain_data.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DomainInfo',
                'single_domain_data',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /DynamicDNS/create:
    get:
      description: >-
        This function creates a Dynamic DNS (DDNS) domain.


        **Important:**


        When you disable the [_DNS_ role](https://go.cpanel.net/serverroles),
        the system disables this function.
      operationId: dynamicdns-create
      parameters:
        - description: The fully-qualified domain name to create as a DDNS domain.
          in: query
          name: domain
          required: true
          schema:
            example: home.example.com
            format: domain
            type: string
        - description: A human-readable string that describes the domain.
          in: query
          name: description
          required: false
          schema:
            example: Home network
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create
                    type: string
                  module:
                    description: The name of the module called.
                    example: DynamicDNS
                    type: string
                  result:
                    properties:
                      data:
                        description: Information about the newly-created DDNS domain.
                        properties:
                          created_time:
                            description: The creation time of the Dynamic DNS domain.
                            format: unix_timestamp
                            type: integer
                          id:
                            description: The DDNS domain’s ID.
                            example: ggiugyxxjwnkmqtwysgmvrurplmafxpq
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Dynamic DNS domain
      tags:
        - DynamicDNS
        - Dynamic DNS
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DynamicDNS \
              create \
              domain='home.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DynamicDNS/create?domain=home.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DynamicDNS_create.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_create.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DynamicDNS/,
                q/create/,
                {
                    'domain' => 'home.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DynamicDNS_create.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_create.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DynamicDNS',
                'create',
                array (
                    'domain' => 'home.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /DynamicDNS/delete:
    get:
      description: >-
        This function deletes an existing Dynamic DNS (DDNS) domain.


        **Important:**


        When you disable the [_DNS_ role](https://go.cpanel.net/serverroles),
        the system disables this function.
      operationId: dynamicdns-delete
      parameters:
        - description: The DDNS domain’s ID.
          in: query
          name: id
          required: true
          schema:
            example: ggiugyxxjwnkmqtwysgmvrurplmafxpq
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete
                    type: string
                  module:
                    description: The name of the module called.
                    example: DynamicDNS
                    type: string
                  result:
                    properties:
                      data:
                        description: Information about the deletion.
                        properties:
                          deleted:
                            description: >-
                              Whether a DDNS domain with the given ID existed
                              for deletion.


                              * `0` - No DDNS domain with the given ID existed.

                              * `1` - A DDNS domain with the given ID existed
                              but is now deleted.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: number
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete Dynamic DNS domain
      tags:
        - DynamicDNS
        - Dynamic DNS
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DynamicDNS \
              delete \
              id='ggiugyxxjwnkmqtwysgmvrurplmafxpq'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DynamicDNS/delete?id=ggiugyxxjwnkmqtwysgmvrurplmafxpq
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DynamicDNS_delete.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_delete.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DynamicDNS/,
                q/delete/,
                {
                    'id' => 'ggiugyxxjwnkmqtwysgmvrurplmafxpq',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DynamicDNS_delete.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_delete.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DynamicDNS',
                'delete',
                array (
                    'id' => 'ggiugyxxjwnkmqtwysgmvrurplmafxpq',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /DynamicDNS/list:
    get:
      description: >-
        This function lists the user’s Dynamic DNS (DDNS) domains.


        **Important:**


        When you disable the [_DNS_ role](https://go.cpanel.net/serverroles),
        the system disables this function.
      operationId: dynamicdns-list
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list
                    type: string
                  module:
                    description: The name of the module called.
                    example: DynamicDNS
                    type: string
                  result:
                    properties:
                      data:
                        description: The user’s DDNS domains.
                        items:
                          properties:
                            created_time:
                              description: The DDNS domain’s creation time.
                              format: unix_timestamp
                              type: integer
                            description:
                              description: >-
                                A user-editable string that describes the DDNS
                                domain.
                              example: My home network
                              type: string
                            domain:
                              description: The domain.
                              example: home.example.com
                              format: domain
                              type: string
                            id:
                              description: >-
                                The domain’s DDNS ID.


                                **Note:**


                                This ID goes into the URL that the client uses
                                to

                                [update the domain’s IP address

                                resolution](https://go.cpanel.net/cpaneldocsdynamicdns).
                              example: gziugyxxjwnamqtwysgmvrurplmafxpj
                              type: string
                            last_run_times:
                              description: |-
                                The most recent times when the web call ran.

                                **Note:**

                                This list changes every time the web call runs,
                                even if the domain’s IP address resolution does
                                **not** change.
                              items:
                                format: unix_timestamp
                                type: integer
                              type: array
                            last_update_time:
                              description: |-
                                The most recent update time for the
                                DDNS domain.

                                **Note:**

                                This value changes **only** when
                                the domain’s IP address resolution changes.
                              format: unix_timestamp
                              nullable: true
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Dynamic DNS domains
      tags:
        - DynamicDNS
        - Dynamic DNS
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DynamicDNS \
              list
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DynamicDNS/list
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DynamicDNS_list.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DynamicDNS/,
                q/list/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DynamicDNS_list.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DynamicDNS',
                'list'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /DynamicDNS/recreate:
    get:
      description: >-
        This function gives a new, randomly-generated ID to an existing Dynamic
        DNS (DDNS) domain.


        **Important:**


        When you disable the [_DNS_ role](https://go.cpanel.net/serverroles),
        the system disables this function.
      operationId: dynamicdns-recreate
      parameters:
        - description: The DDNS domain’s ID.
          in: query
          name: id
          required: true
          schema:
            example: ggiugyxxjwnkmqtwysgmvrurplmafxpq
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: recreate
                    type: string
                  module:
                    description: The name of the module called.
                    example: DynamicDNS
                    type: string
                  result:
                    properties:
                      data:
                        description: Information about the DDNS domain.
                        properties:
                          id:
                            description: The DDNS domain’s new ID.
                            example: ggiugyxxjwnkmqtwysgmvrurplmafxpq
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update Dynamic DNS domain ID
      tags:
        - DynamicDNS
        - Dynamic DNS
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DynamicDNS \
              recreate \
              id='ggiugyxxjwnkmqtwysgmvrurplmafxpq'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DynamicDNS/recreate?id=ggiugyxxjwnkmqtwysgmvrurplmafxpq
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DynamicDNS_recreate.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_recreate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DynamicDNS/,
                q/recreate/,
                {
                    'id' => 'ggiugyxxjwnkmqtwysgmvrurplmafxpq',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DynamicDNS_recreate.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_recreate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DynamicDNS',
                'recreate',
                array (
                    'id' => 'ggiugyxxjwnkmqtwysgmvrurplmafxpq',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /DynamicDNS/set_description:
    get:
      description: >-
        This function sets the description on a user’s Dynamic DNS (DDNS)
        domain.


        **Important:**


        When you disable the [_DNS_ role](https://go.cpanel.net/serverroles),
        the system disables this function.
      operationId: dynamicdns-set_description
      parameters:
        - description: A human-readable string that describes the domain.
          in: query
          name: description
          required: true
          schema:
            example: Home network
            type: string
        - description: The DDNS domain’s ID.
          in: query
          name: id
          required: true
          schema:
            example: ggiugyxxjwnkmqtwysgmvrurplmafxpq
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list
                    type: string
                  module:
                    description: The name of the module called.
                    example: DynamicDNS
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update Dynamic DNS domain description
      tags:
        - DynamicDNS
        - Dynamic DNS
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              DynamicDNS \
              set_description \
              id='ggiugyxxjwnkmqtwysgmvrurplmafxpq' \
              description='Home network'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/DynamicDNS/set_description?id=ggiugyxxjwnkmqtwysgmvrurplmafxpq&description=Home%20network
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file DynamicDNS_set_description.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_set_description.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/DynamicDNS/,
                q/set_description/,
                {
                    'id' => 'ggiugyxxjwnkmqtwysgmvrurplmafxpq',
                    'description' => 'Home network',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file DynamicDNS_set_description.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/DynamicDNS_set_description.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'DynamicDNS',
                'set_description',
                array (
                    'id' => 'ggiugyxxjwnkmqtwysgmvrurplmafxpq',
                    'description' => 'Home network',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /Email/account_name:
    get:
      description: >-
        This function returns the provided value. This function works with other
        functions to display form data within a user interface.


        **Note:**

          If you call this function from a Webmail session URL, the system will **only** access data for that email account.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: account_name
      parameters:
        - description: >-
            The function will return this value in the data return. If you do
            **not** include this parameter, the function returns `All Mail On
            The Account` or a blank value.

            * A valid string.

            * An empty value.


            **Note:**

             The function does **not** validate this parameter's value.
          in: query
          name: account
          required: false
          schema:
            example: user
            type: string
        - description: >-
            Include this parameter to cause the function to return `All Mail On
            The Account` if the account parameter is blank or does not exist. If
            you do **not** include this parameter and the account value is blank
            or does not exist, the function returns a blank data value.
          in: query
          name: display
          required: false
          schema:
            example: any_value
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: account_name
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          The account parameter's value.
                          * A valid string.
                          * `All Mail On The Account`
                          * An empty value.
                        example: user@example.com
                        format: email
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return current user's account name
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              account_name
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/account_name
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_account_name.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_account_name.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/account_name/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_account_name.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_account_name.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'account_name'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_auto_responder:
    get:
      description: |-
        This function creates an autoresponder for an email account.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: add_auto_responder
      parameters:
        - description: The contents of the autoresponder message's `Body` section.
          in: query
          name: body
          required: true
          schema:
            example: This is an autoresponder message.
            type: string
        - description: >-
            The email account's domain. For example, `example.com` if the email
            address is `user@example.com`.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The email account name. For example, `user` if the email address is
            `user@example.com`.
          in: query
          name: email
          required: true
          schema:
            example: user
            type: string
        - description: The contents of the autoresponder message's `From:` field.
          in: query
          name: from
          required: true
          schema:
            example: User Name
            type: string
        - description: >-
            The amount of time, in hours, that the server waits between
            autoresponder messages to the same address.


            **Note:**

              If you specify `0`, the system sends a message for each received email.
          in: query
          name: interval
          required: true
          schema:
            example: 24
            minimum: 0
            type: integer
        - description: >-
            Whether the body of the autoresponder message begins with an [HTML
            Content-Type
            declaration](https://en.wikipedia.org/wiki/Character_encodings_in_HTML#Specifying_the_document.27s_character_encoding).

            * `1` — Include an HTML content type declaration.

            * `0` — Do **not** include an HTML content type declaration.
          in: query
          name: is_html
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: When to enable the autoresponder.
          in: query
          name: start
          required: true
          schema:
            example: 1410277881
            format: unix_timestamp
            type: integer
        - description: >-
            When to disable the autoresponder. A time that is after the `start`
            time.
          in: query
          name: stop
          required: true
          schema:
            example: 1410300000
            format: unix_timestamp
            type: integer
        - description: The contents of the autoresponder message's `Subject:` field.
          in: query
          name: subject
          required: true
          schema:
            example: Autoresponder Subject
            type: string
        - description: >-
            The [character
            set](https://en.wikipedia.org/wiki/Character_encoding).
          in: query
          name: charset
          required: false
          schema:
            default: utf-8
            example: UTF-8
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_auto_responder
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create email account's autoresponder
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_auto_responder \
              email='user' \
              from='User Name' \
              subject='Autoresponder Subject' \
              body='This is an autoresponder message.' \
              domain='example.com' \
              is_html='1' \
              interval='24' \
              start='1410277881' \
              stop='1410300000'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_auto_responder?email=user&from=User%20Name&subject=Autoresponder%20Subject&body=This%20is%20an%20autoresponder%20message.&domain=example.com&is_html=1&interval=24&start=1410277881&stop=1410300000
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_auto_responder.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_add_auto_responder.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_auto_responder/,
                {
                    'email' => 'user',
                    'from' => 'User Name',
                    'subject' => 'Autoresponder Subject',
                    'body' => 'This is an autoresponder message.',
                    'domain' => 'example.com',
                    'is_html' => '1',
                    'interval' => '24',
                    'start' => '1410277881',
                    'stop' => '1410300000',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_auto_responder.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_auto_responder.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_auto_responder',
                array (
                    'email' => 'user',
                    'from' => 'User Name',
                    'subject' => 'Autoresponder Subject',
                    'body' => 'This is an autoresponder message.',
                    'domain' => 'example.com',
                    'is_html' => '1',
                    'interval' => '24',
                    'start' => '1410277881',
                    'stop' => '1410300000',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_domain_forwarder:
    get:
      description: |-
        This function creates a domain-level forwarder.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: add_domain_forwarder
      parameters:
        - description: The domain to receive forwarded mail.
          in: query
          name: destdomain
          required: true
          schema:
            example: forwardtome.com
            format: domain
            type: string
        - description: The domain on the cPanel account from which to forward mail.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_domain_forwarder
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          A message of success, or a reason for failure.

                          * A message of success that lists the updated
                          `vdomainaliases` file.

                          * A reason for failure.
                        example: File updated "/etc/vdomainaliases/example.com"
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create domain-level forwarder
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_domain_forwarder \
              domain='example.com' \
              destdomain='forwardtome.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_domain_forwarder?domain=example.com&destdomain=forwardtome.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_domain_forwarder.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_add_domain_forwarder.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_domain_forwarder/,
                {
                    'domain' => 'example.com',
                    'destdomain' => 'forwardtome.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_domain_forwarder.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_domain_forwarder.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_domain_forwarder',
                array (
                    'domain' => 'example.com',
                    'destdomain' => 'forwardtome.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_forwarder:
    get:
      description: |-
        This function creates an email forwarder.

        **Important:**

          When you disable the MailReceive role, the system disables this function. 
          For more information, read our [How to Use Server Profiles](https://go.cpanel.net/howtouseserverprofiles) 
          documentation.
      operationId: add_forwarder
      parameters:
        - description: The domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
        - description: The email address to forward.
          in: query
          name: email
          required: true
          schema:
            example: forwardme@example.com
            type: string
        - description: The method to use to handle the email address's mail.
          in: query
          name: fwdopt
          required: true
          schema:
            example: fwd
            type: string
        - description: |-
            The failure message for the message's sender.

            **Note:**

             Use this parameter if you used the fail method for the fwdopt parameter.
          in: query
          name: failmsgs
          required: false
          schema:
            default: No such person at this address
            example: Nobody home.
            type: string
        - description: |-
            The email address to which the system forwards messages.

            **Note:**

             You must use this parameter if you used the fwd method for the fwdopt parameter. You can pass multiple addresses to this parameter as a comma-separated list.
          in: query
          name: fwdemail
          required: false
          schema:
            example: fwdtome@example.com
            type: string
        - description: |-
            The system user to whom the system forwards messages.

            **Note:**

             You must use this parameter if you used the system method for the fwdopt parameter.
          in: query
          name: fwdsystem
          required: false
          schema:
            example: user
            type: string
        - description: |-
            The application to which the system pipes messages.

            **Note:**

             You must use this parameter if you used the pipe method for the fwdopt parameter.

            **Important:**

              This parameter requires the FileStorage role. For more information, read our 
              [How to Use Server Profiles](https://go.cpanel.net/howtouseserverprofiles) documentation.
          in: query
          name: pipefwd
          required: false
          schema:
            example: mailscript.pl
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_forwarder
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            domain:
                              description: The domain. A valid domain on the account.
                              example: example.com
                              type: string
                            email:
                              description: >-
                                The email address. An email address on the
                                account.
                              example: user@example.com
                              type: string
                            forward:
                              description: >-
                                The method that the system will use to handle
                                the address's mail.

                                - An email address  The system forwards mail to
                                this address.

                                - :fail:  The system bounces mail back to the
                                sender and sends a failure message.

                                - :blackhole:  The system deletes mail without a
                                failure message.

                                - The path to an application  The system pipes
                                mail to this application.

                                - A username  The system forwards mail to this
                                system account.
                              example: fwdtome@example.com
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create email account forwarder
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_forwarder \
              domain='example.com' \
              email='forwardme@example.com' \
              fwdopt='fwd'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_forwarder?domain=example.com&email=forwardme%40example.com&fwdopt=fwd
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_forwarder.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_add_forwarder.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_forwarder/,
                {
                    'domain' => 'example.com',
                    'email' => 'forwardme@example.com',
                    'fwdopt' => 'fwd',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_forwarder.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_forwarder.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_forwarder',
                array (
                    'domain' => 'example.com',
                    'email' => 'forwardme@example.com',
                    'fwdopt' => 'fwd',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_list:
    get:
      description: |-
        This function creates a Mailman mailing list.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: add_list
      parameters:
        - description: The domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The mailing list name.
          in: query
          name: list
          required: true
          schema:
            example: newlist
            type: string
        - description: The mailing list password.
          in: query
          name: password
          required: true
          schema:
            example: 12345luggage
            type: string
        - description: |-
            Whether the mailing list is private.
            * `1` — Private.
            * `0` — Public.
          in: query
          name: private
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            Whether to rebuild the mailing list.
            * `1` — Rebuild the mailing list.
            * `0` — Do **not** rebuild the mailing list.
          in: query
          name: rebuildonly
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_list
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create mailing list
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_list \
              list='newlist' \
              password='12345luggage' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_list?list=newlist&password=12345luggage&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_list.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_add_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_list/,
                {
                    'list' => 'newlist',
                    'password' => '12345luggage',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_list.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_list',
                array (
                    'list' => 'newlist',
                    'password' => '12345luggage',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_mailman_delegates:
    get:
      description: |-
        This function grants mailing list administrative privileges to users.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: add_mailman_delegates
      parameters:
        - description: |-
            A list of the administrators to add.

            **Note:**

              Separate multiple email addresses with commas.
          examples:
            multiple:
              summary: Multiple delegates
              value: delegates=user@example.com,admin@example.com
            single:
              summary: A single delegate.
              value: user@example.com
          explode: false
          in: query
          name: delegates
          required: true
          schema:
            type: string
          style: form
        - description: The mailing list.
          in: query
          name: list
          required: true
          schema:
            example: mylist
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_mailman_delegates
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          delegates:
                            description: An array of the mailing list's administrators.
                            items:
                              example: admin@example.com, user@example.com
                              type: string
                            type: array
                          metadata:
                            properties:
                              transformed: {}
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add administrators to mailing list
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_mailman_delegates \
              list='mylist' \
              delegates='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_mailman_delegates?list=mylist&delegates=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_mailman_delegates.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_add_mailman_delegates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_mailman_delegates/,
                {
                    'list' => 'mylist',
                    'delegates' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_mailman_delegates.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_mailman_delegates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_mailman_delegates',
                array (
                    'list' => 'mylist',
                    'delegates' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_mx:
    get:
      description: "This function creates a Mail Exchanger (MX) record. For more information about MX record settings, read our\_[Email Routing Configuration](https://go.cpanel.net/whmdocsEmailRoutingConfiguration)\_documentation.\n\n**Important:**\n\n  When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function"
      operationId: add_mx
      parameters:
        - description: The new mail exchanger's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The new mail exchanger's name.
          in: query
          name: exchanger
          required: true
          schema:
            example: mail.example.com
            format: domain
            type: string
        - description: "The new mail\_exchanger's [priority value](https://go.cpanel.net/whmdocsEditMXEntry).\n\n**Note:**\n\n  It is common practice to set a priority value that is divisible by five."
          in: query
          name: priority
          required: true
          schema:
            example: 5
            minimum: 0
            type: integer
        - description: |-
            Whether the mail exchanger accepts all mail for the domain.
            * `1` — The mail exchanger always accepts mail.
            * `0` — The mail exchanger does **not** always accept mail.
          in: query
          name: alwaysaccept
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_mx
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          checkmx:
                            description: An object of the mail exchanger's data.
                            properties:
                              changed:
                                description: |-
                                  Whether a change occurred during the function.
                                  * `1` - Change occurred.
                                  * `0` - **No** change.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                              detected:
                                description: |-
                                  The mail exchanger type.
                                  * `auto`
                                  * `local`
                                  * `secondary`
                                  * `remote`
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              isprimary:
                                description: >-
                                  Whether the mail exchanger is the primary mail
                                  exchanger.

                                  * `1` - Primary.

                                  * `0` - **Not** primary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              issecondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` - Secondary.

                                  * `0` - **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              local:
                                description: >-
                                  Whether the mail exchanger is a local
                                  exchanger.

                                  * `1` - Local.

                                  * `0` - **Not** local.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              mxcheck:
                                description: |-
                                  The mail exchanger type.
                                  * `auto`
                                  * `local`
                                  * `secondary`
                                  * `remote`
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              remote:
                                description: >-
                                  Whether the mail exchanger is a remote
                                  exchanger.

                                  * `1` - Remote.

                                  * `0` - **Not** remote.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              secondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` - Secondary.

                                  * `0` - **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              warnings:
                                description: Warning messages, if any exist.
                                items:
                                  example: >-
                                    Auto Detect of MX configuration not possible
                                    due to non-resolving MX entries. Defaulting
                                    to last known setting: local.
                                  type: string
                                type: array
                            type: object
                          results:
                            description: >-
                              A message of success, or an error message.

                              * A message of success that begins with `Added
                              entry:`.

                              * An error message.
                            example: >-
                              Added entry:\nBind reloading on example using rndc
                              zone: [example.com]\n
                            type: string
                          status:
                            description: |-
                              Whether the function succeeded.
                              * `1` - Success.
                              * `0` - Failure.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          statusmsg:
                            description: >-
                              A message of success, or an error message.

                              * A message of success that begins with `Added
                              entry:`.

                              * An error message.
                            example: >-
                              Added entry:\nBind reloading on example using rndc
                              zone: [example.com]\n
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create mail exchanger record
      tags:
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_mx \
              domain='example.com' \
              exchanger='mail.example.com' \
              priority='5'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_mx?domain=example.com&exchanger=mail.example.com&priority=5
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_mx.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Email_add_mx.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_mx/,
                {
                    'domain' => 'example.com',
                    'exchanger' => 'mail.example.com',
                    'priority' => '5',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_mx.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_mx.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_mx',
                array (
                    'domain' => 'example.com',
                    'exchanger' => 'mail.example.com',
                    'priority' => '5',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_pop:
    get:
      description: |-
        This function creates an email address.

        **Important:**

          * When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
          * We recommend that you use the UAPI `UserManager::create_user` function to create an email address instead of this function. This function is incompatible with [the *Reset Password* feature](https://go.cpanel.net/resetpassdocs).
          * You **must** URI-encode values when using the CLI.
      operationId: add_pop
      parameters:
        - description: >-
            The email account username or address.

            * A valid email account username. For example, `user` to create
            `user@example.com`.

            * A valid email address.


            **Note:**

              You **cannot** enter `cpanel` as an account name when you create an email account.
          in: query
          name: email
          required: true
          schema:
            example: user
            oneOf:
              - format: email
                type: string
              - type: string
        - description: The email account password.
          in: query
          name: password
          required: true
          schema:
            example: 123456luggage
            type: string
        - description: >-
            The email account's domain. For example, `example.com` to create
            `user@example.com`.
          in: query
          name: domain
          required: false
          schema:
            default: The cPanel account's main domain.
            example: example.com
            format: domain
            type: string
        - description: |-
            The account's password hash.

            **Notes:**

              * You can use this parameter instead of the `password` parameter. However, you cannot use both `password` and `password_hash` parameters in the same request.
              * You can find your server's hash type in the `/etc/sysconfig/authconfig` file.
          in: query
          name: password_hash
          required: false
          schema:
            example: >-
              $6$1sOyHP5ZDYp3pGUz$R0TSgfPRHfDjT5PP5RJGv39FhiGTNNPvM7IFpCBjXijMmlMZk9yI8T3LqGuntc9fdKb5eX.lGL7wBS9e4DAWn/
            type: string
        - description: >-
            The maximum amount of disk space that the new email account may use.

            * A positive integer that represents the maximum amount of disk
            space, in megabytes (MB).

            * `0` or `unlimited` — The account possesses unlimited disk space.


            **Note:**

              * The positive integer value **cannot** exceed the maximum email quota.
              * The `0` or `unlimited` value is **only** available to users **without** a maximum email account quota.
          in: query
          name: quota
          required: false
          schema:
            default: The defined system value.
            example: 500
            oneOf:
              - enum:
                  - unlimited
                type: string
              - minimum: 0
                type: integer
        - description: |-
            Whether to send client configuration instructions to the account.
            * `1` — Send the instructions.
            * `0` — Do **not** send the instructions.
          in: query
          name: send_welcome_email
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            Whether to skip the update of the email accounts database's cache.
            * `1` — Skip the update.
            * `0` — Perform the update.
          in: query
          name: skip_update_db
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_pop
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The email address. The email account username, a plus
                          character (+), and the email account domain.
                        example: user+example.com
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create email address
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_pop \
              email='user' \
              password='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_pop?email=user&password=123456luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_pop.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Email_add_pop.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_pop/,
                {
                    'email' => 'user',
                    'password' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_pop.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_pop.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_pop',
                array (
                    'email' => 'user',
                    'password' => '123456luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/add_spam_filter:
    get:
      description: >-
        This function sets a new minimum Apache SpamAssassin™ spam score
        threshold value.


        **Notes:**

          * To disable spam filtering, use the UAPI `Email::disable_spam_autodelete` fuction.
          * For more information, read our [Spam Filters](https://go.cpanel.net/cpaneldocsSpamFilters) documentation.

        **Important:**

          * When you disable the [*Spam Filter* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.
      operationId: add_spam_filter
      parameters:
        - description: "The email account to apply a spam score threshold value.\n\n**Note:**\n\n  If you do\_**not**\_specify a value, the function applies the new spam score threshold value to\_**all**\_accounts."
          in: query
          name: account
          required: false
          schema:
            example: username@example.com
            format: email
            type: string
        - description: "Set a spam score threshold value.\n\n**Notes:**\n\n  * You **must** specify a value greater than `0`, and lower than the domain owner's spam score threshold value.\n  * You **cannot** enter `0` as a value for this parameter.\n  * You can retrieve the domain owner‘s spam score threshold value via the\_`cpuser_spam_auto_delete_score` return from the UAPI\_`Email::get_spam_settings` function.\n  * The default value, `5`, is an aggressive spam score.\n  * The lower the spam score, the more likely that Apache SpamAssassin will label messages as spam and delete them.\n  * Some systems may wish to use a more lenient spam score (for example, `8` or `10`)."
          in: query
          name: required_score
          required: false
          schema:
            default: 5
            example: '8'
            minimum: 1
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_spam_filter
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update minimum spam score threshold value
      tags:
        - Email
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              add_spam_filter
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/add_spam_filter
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_add_spam_filter.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_add_spam_filter.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/add_spam_filter/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_add_spam_filter.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_add_spam_filter.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'add_spam_filter'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/browse_mailbox:
    get:
      description: >-
        This function lists the mail directory's subdirectories (boxes) and
        files.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.

        **Notes:**

          If you do not use any input parameters, the function returns a list of items in the cPanel account's main mail directory.
      operationId: browse_mailbox
      parameters:
        - description: An email address, to limit the function's results.
          in: query
          name: account
          required: false
          schema:
            example: user@example.com
            format: email
            type: string
        - description: |-
            A mail directory name, to limit results to specific directories.

            **Note:**

              If you pass the `default` or `mail` values, the function lists information for all mail directories.
          in: query
          name: dir
          required: false
          schema:
            example: maildir
            type: string
        - description: |-
            Whether to include hidden files and directories.
            * `1` — Include hidden items.
            * `0` — Do **not** include hidden items.
          in: query
          name: showdotfiles
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: browse_mailbox
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            depth:
                              description: The directory depth of the item's path.
                              example: 2
                              minimum: 0
                              type: integer
                            file:
                              description: The item's base name.
                              example: archive
                              type: string
                            fullpath:
                              description: The item's absolute path.
                              example: /home/example/mail/archive
                              format: path
                              type: string
                            isleaf:
                              description: |-
                                Whether the item is a file or a directory.
                                * `1` - File.
                                * `0` - Directory.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            ismailbox:
                              description: |-
                                Whether the item is a mailbox.
                                * `1` - Mailbox.
                                * `0` - **Not** a mailbox.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            mtime:
                              description: >-
                                The item's modification time. A time, in [Unix
                                time](https://en.wikipedia.org/wiki/Unix_time)
                                format.
                              example: 1413398866
                              format: unix_timestamp
                              type: integer
                            path:
                              description: The item's directory's path.
                              example: /home/example/mail
                              format: path
                              type: string
                            relpath:
                              description: The item's relative path.
                              example: /archive
                              format: path
                              type: string
                            type:
                              description: |-
                                The item type.
                                * `dir` - The item is a directory.
                                * `file` - The item is a file.
                              enum:
                                - dir
                                - file
                              example: dir
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return mail directory's subdirectories and files
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              browse_mailbox
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/browse_mailbox
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_browse_mailbox.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_browse_mailbox.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/browse_mailbox/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_browse_mailbox.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_browse_mailbox.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'browse_mailbox'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/change_mx:
    get:
      description: >-
        This function creates a Mail Exchanger (MX) record. For more information
        about MX record settings, read our [Email Routing
        Configuration](https://go.cpanel.net/whmdocsEmailRoutingConfiguration)
        documentation.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: change_mx
      parameters:
        - description: The mail exchanger's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The mail exchanger's name.
          in: query
          name: exchanger
          required: true
          schema:
            example: mail.example.com
            format: domain
            type: string
        - description: The mail exchanger's current name.
          in: query
          name: oldexchanger
          required: true
          schema:
            example: mail.example.com
            format: domain
            type: string
        - description: "The mail\_exchanger's new\_[priority value](https://go.cpanel.net/whmdocsEditMXEntry).\n\n**Note:**\n\n  Common practice sets a priority value divisible by five."
          in: query
          name: priority
          required: true
          schema:
            example: 15
            minimum: 0
            type: integer
        - description: |-
            Whether the mail exchanger accepts all mail for the domain.
            * `1` — The mail exchanger always accepts mail.
            * `0` — The mail exchanger does **not** always accept mail.
          in: query
          name: alwaysaccept
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The mail exchanger's current priority value. If multiple MX entries
            match the `oldexchanger` value, the system uses this parameter to
            find the correct entry.
          in: query
          name: oldpriority
          required: false
          schema:
            example: 5
            minimum: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: change_mx
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          checkmx:
                            description: An object of the mail exchanger's data.
                            properties:
                              changed:
                                description: |-
                                  Whether a change occurred during the function.
                                  * `1` - Change occurred.
                                  * `0` - **No** change.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                              detected:
                                description: |-
                                  The mail exchanger type.
                                  * `auto`
                                  * `local`
                                  * `secondary`
                                  * `remote`
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              isprimary:
                                description: >-
                                  Whether the mail exchanger is the primary mail
                                  exchanger.

                                  * `1` - Primary.

                                  * `0` - **Not** primary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              issecondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` - Secondary.

                                  * `0` - **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              local:
                                description: >-
                                  Whether the mail exchanger is a local
                                  exchanger.

                                  * `1` - Local.

                                  * `0` - **Not** local.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              mxcheck:
                                description: |-
                                  The mail exchanger type.
                                  * `auto`
                                  * `local`
                                  * `secondary`
                                  * `remote`
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              remote:
                                description: >-
                                  Whether the mail exchanger is a remote
                                  exchanger.

                                  * `1` - Remote.

                                  * `0` - **Not** remote.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              secondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` - Secondary.

                                  * `0` - **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              warnings:
                                description: Warning messages, if any exist.
                                items:
                                  example: >-
                                    Auto Detect of MX configuration not possible
                                    due to non-resolving MX entries. Defaulting
                                    to last known setting: local.
                                  type: string
                                type: array
                            type: object
                          results:
                            description: >-
                              A message of success, or an error message.

                              * A message of success that begins with `Added
                              entry:`.

                              * An error message.
                            example: >-
                              Replacing existing entry on line matched old entry
                              and old priority: 51:\nBind reloading on example
                              using rndc zone: [example.com]
                            type: string
                          status:
                            description: |-
                              Whether the function succeeded.
                              * `1` - Success.
                              * `0` - Failure.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          statusmsg:
                            description: >-
                              A message of success, or an error message.

                              * A message of success that begins with `Added
                              entry:`.

                              * An error message.
                            example: >-
                              Replacing existing entry on line matched old entry
                              and old priority: 51:\nBind reloading on example
                              using rndc zone: [example.com]
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update mail exchanger record
      tags:
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              change_mx \
              domain='example.com' \
              exchanger='mail.example.com' \
              oldexchanger='mail.example.com' \
              priority='15'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/change_mx?domain=example.com&exchanger=mail.example.com&oldexchanger=mail.example.com&priority=15
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_change_mx.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_change_mx.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/change_mx/,
                {
                    'domain' => 'example.com',
                    'exchanger' => 'mail.example.com',
                    'oldexchanger' => 'mail.example.com',
                    'priority' => '15',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_change_mx.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_change_mx.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'change_mx',
                array (
                    'domain' => 'example.com',
                    'exchanger' => 'mail.example.com',
                    'oldexchanger' => 'mail.example.com',
                    'priority' => '15',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/check_fastmail:
    get:
      description: >-
        This function checks whether [BlackBerry®
        FastMail](https://go.cpanel.net/blackberryfastmail) support is enabled.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.
      operationId: check_fastmail
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: check_fastmail
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The contents of the server's `/var/cpanel/fastmail`
                          file.

                          * A positive value that represents a BlackBerry
                          FastMail version number if it is enabled on the
                          server.

                          * A `null` value if BlackBerry FastMail is not enabled
                          on the server.
                        example: '2'
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return BlackBerry FastMail support status
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              check_fastmail
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/check_fastmail
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_check_fastmail.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_check_fastmail.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/check_fastmail/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_check_fastmail.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_check_fastmail.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'check_fastmail'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/count_auto_responders:
    get:
      description: >-
        This function returns the number of
        [autoresponders](https://go.cpanel.net/Autoresponders) for every email
        address on a cPanel account.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.
      operationId: count_auto_responders
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: count_auto_responders
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          The number of email autoresponders.
                          * `0`
                          * A positive integer.
                        example: 1
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's autoresponders total
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              count_auto_responders
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/count_auto_responders
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_count_auto_responders.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_count_auto_responders.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/count_auto_responders/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_count_auto_responders.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_count_auto_responders.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'count_auto_responders'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Email/count_filters:
    get:
      description: >-
        This function returns the number of [email
        filters](https://go.cpanel.net/cpaneldocsEmailFilters) for every email
        address on a cPanel account.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles) or the [*IP Blocker*](https://go.cpanel.net/whmdocsFeatureManager) feature, the system **disables** this function. For more information, read our [How to Use Server Profiles](https://go.cpanel.net/howtouseserverprofiles) documentation.
      operationId: count_filters
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: count_filters
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          The number of email filters.
                          * `0`
                          * A positive integer.
                        example: 1
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's email filters total
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              count_filters
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/count_filters
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_count_filters.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_count_filters.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/count_filters/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_count_filters.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_count_filters.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'count_filters'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Email/count_forwarders:
    get:
      description: "This function returns the number of\_[forwarders](https://go.cpanel.net/Forwarders) for every email address on a cPanel account.\n\n**Important:**\n\n  When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function."
      operationId: count_forwarders
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: count_forwarders
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          The number of email forwarders.
                          * `0`
                          * A positive integer.
                        example: 1
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's mail forwarder total
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              count_forwarders
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/count_forwarders
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_count_forwarders.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_count_forwarders.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/count_forwarders/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_count_forwarders.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_count_forwarders.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'count_forwarders'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Email/count_lists:
    get:
      description: >-
        This function returns the number of [mailing
        lists](https://go.cpanel.net/MailingLists) for every email address on a
        cPanel account.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.
      operationId: count_lists
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: count_lists
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          The number of mailing lists.
                          * `0`
                          * A positive integer.
                        example: 1
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's mailing list total
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              count_lists
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/count_lists
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_count_lists.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_count_lists.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/count_lists/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_count_lists.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_count_lists.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'count_lists'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Email/count_pops:
    get:
      description: >-
        This function returns the number of [email
        accounts](https://go.cpanel.net/cpaneldocsEmailAccounts) for a cPanel
        account.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.
      operationId: count_pops
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: count_pops
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          The number of email accounts.
                          * `0`
                          * A positive integer.
                        example: 1
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's email account total
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              count_pops
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/count_pops
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_count_pops.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_count_pops.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/count_pops/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_count_pops.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_count_pops.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'count_pops'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Email/delete_auto_responder:
    get:
      description: |-
        This function deletes an autoresponder.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.
      operationId: delete_auto_responder
      parameters:
        - description: The email account.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_auto_responder
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete email account's autoresponder
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_auto_responder \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_auto_responder?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_auto_responder.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_auto_responder.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_auto_responder/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_auto_responder.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_auto_responder.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_auto_responder',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/delete_domain_forwarder:
    get:
      description: |-
        This function deletes a domain-level forwarder.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_domain_forwarder
      parameters:
        - description: The domain name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_domain_forwarder
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete domain-level forwarder
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_domain_forwarder \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_domain_forwarder?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_domain_forwarder.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_domain_forwarder.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_domain_forwarder/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_domain_forwarder.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_domain_forwarder.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_domain_forwarder',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/delete_filter:
    get:
      description: |-
        This function deletes an email filter.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_filter
      parameters:
        - description: The email address that owns the filter.
          in: query
          name: account
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: The filter's name.
          in: query
          name: filtername
          required: true
          schema:
            example: coffee
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_filter
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete email account's email filter
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_filter \
              account='user@example.com' \
              filtername='coffee'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_filter?account=user%40example.com&filtername=coffee
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_filter.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_filter.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_filter/,
                {
                    'account' => 'user@example.com',
                    'filtername' => 'coffee',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_filter.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_filter.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_filter',
                array (
                    'account' => 'user@example.com',
                    'filtername' => 'coffee',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/delete_forwarder:
    get:
      description: |-
        This function deletes an email forwarder.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_forwarder
      parameters:
        - description: The forwarder's email address.
          in: query
          name: address
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: |-
            The forwarder's destination.
            * A valid email address.
            * A script location.
            * A system account.
          in: query
          name: forwarder
          required: true
          schema:
            example: fwdtome@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_forwarder
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete email account's email forwarder
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_forwarder \
              address='user@example.com' \
              forwarder='fwdtome@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_forwarder?address=user%40example.com&forwarder=fwdtome%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_forwarder.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_forwarder.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_forwarder/,
                {
                    'address' => 'user@example.com',
                    'forwarder' => 'fwdtome@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_forwarder.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_forwarder.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_forwarder',
                array (
                    'address' => 'user@example.com',
                    'forwarder' => 'fwdtome@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/delete_held_messages:
    get:
      description: >-
        This function deletes all outbound email messages held in the mail queue
        for the specified email account.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_held_messages
      parameters:
        - description: The email address to query.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_held_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The number of held outbound email messages deleted
                          from the mail queue.


                          **Note:**

                            This function returns a `0` value when no messages exist in the queue.
                        example: 0
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete email account's outgoing messages
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_held_messages \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_held_messages?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_held_messages.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_held_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_held_messages/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_held_messages.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_held_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_held_messages',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /Email/delete_list:
    get:
      description: |-
        This function deletes a Mailman mailing list.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_list
      parameters:
        - description: The mailing list.
          in: query
          name: list
          required: true
          schema:
            example: mylist
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_list
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete mailing list
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_list \
              list='mylist'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_list?list=mylist
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_list.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_list/,
                {
                    'list' => 'mylist',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_list.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_list',
                array (
                    'list' => 'mylist',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/delete_mx:
    get:
      description: "This function deletes a Mail Exchanger (MX) record. For more information about MX record settings, read our\_[Email Routing Configuration](https://go.cpanel.net/whmdocsEmailRoutingConfiguration) documentation.\n\n**Important:**\n\n  When you disable the [DNS role](https://go.cpanel.net/serverroles), the system **disables** this function."
      operationId: delete_mx
      parameters:
        - description: The mail exchanger's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The mail exchanger's name.
          in: query
          name: exchanger
          required: true
          schema:
            example: mail.example.com
            type: string
        - description: "The mail\_exchanger's [priority value](https://go.cpanel.net/whmdocsEditMXEntry). If multiple MX entries match the exchanger value, the system uses this parameter to find the correct entry."
          in: query
          name: priority
          required: true
          schema:
            example: 15
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_mx
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          checkmx:
                            description: An object containing the mail exchanger's data.
                            properties:
                              changed:
                                description: |-
                                  Whether a change occurred during the function.
                                  * `1` - Change occurred.
                                  * `0` - **No** change.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                              detected:
                                description: |-
                                  The mail exchanger type.
                                  * `auto`
                                  * `local`
                                  * `secondary`
                                  * `remote`
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              isprimary:
                                description: >-
                                  Whether the mail exchanger is the primary mail
                                  exchanger.

                                  * `1` - Primary.

                                  * `0` - **Not** primary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              issecondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` - Secondary.

                                  * `0` - **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              local:
                                description: >-
                                  Whether the mail exchanger is a local
                                  exchanger.

                                  * `1` - Local.

                                  * `0` - **Not** local.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              mxcheck:
                                description: |-
                                  The mail exchanger type.
                                  * `auto`
                                  * `local`
                                  * `secondary`
                                  * `remote`
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              remote:
                                description: >-
                                  Whether the mail exchanger is a remote
                                  exchanger.

                                  * `1` - Remote.

                                  * `0` - **Not** remote.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              secondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` - Secondary.

                                  * `0` - **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              warnings:
                                description: Warning messages, if any exist.
                                example: >-
                                  Auto Detect of MX configuration not possible
                                  due to non-resolving MX entries. Defaulting to
                                  last known setting: local.
                                items:
                                  type: string
                                type: string
                            type: object
                          results:
                            description: >-
                              A message of success, or an error message.

                              * A message of success that begins with `Removed
                              entry:`.

                              * An error message.
                            example: >-
                              Removed entry: example.com. IN MX 15
                              mail.example.com

                              Bind reloading on example using rndc zone:
                              [example.com]
                            type: string
                          status:
                            description: |-
                              Whether the function succeeded.
                              * `1` - Success.
                              * `0` - Failure.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          statusmsg:
                            description: >-
                              A message of success, or an error message.

                              * A message of success that begins with Added
                              entry.

                              * An error message.
                            example: >-
                              Removed entry: example.com. IN MX 15
                              mail.example.com

                              Bind reloading on example using rndc zone:
                              [example.com]
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete mail exchanger record
      tags:
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_mx \
              domain='example.com' \
              exchanger='mail.example.com' \
              priority='15'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_mx?domain=example.com&exchanger=mail.example.com&priority=15
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_mx.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_mx.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_mx/,
                {
                    'domain' => 'example.com',
                    'exchanger' => 'mail.example.com',
                    'priority' => '15',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_mx.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_mx.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_mx',
                array (
                    'domain' => 'example.com',
                    'exchanger' => 'mail.example.com',
                    'priority' => '15',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/delete_pop:
    get:
      description: |-
        This function deletes an email address.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_pop
      parameters:
        - description: >-
            The email account username or address.

            * A valid email account username. For example, `user` if the email
            address is `user@example.com`.

            * A valid email address.
          example: user@domain.com
          in: query
          name: email
          required: true
          schema:
            anyOf:
              - example: user@domain.com
                format: email
                type: string
              - example: user
                type: string
        - description: >-
            The email account's domain. For example, `example.com` if the email
            address is `user@example.com`.
          in: query
          name: domain
          required: false
          schema:
            default: The cPanel account's main domain.
            example: example.com
            format: domain
            type: string
        - description: >-
            Whether to remove the mail account's home mail directory. If you do
            not specify a value, the function removes the mail account's home
            directory.

            * `passwd` — Preserve the mail account's home directory.

            * Any other value — Remove the mail account's home directory.
          in: query
          name: flags
          required: false
          schema:
            example: passwd
            type: string
        - description: |-
            Whether to modify the mail account's quota file.
            * `1` — Do **not** modify.
            * `0` — Modify.
          in: query
          name: skip_quota
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_pop
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete email address
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              delete_pop \
              email='user@domain.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/delete_pop?email=user%40domain.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_delete_pop.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_delete_pop.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/delete_pop/,
                {
                    'email' => 'user@domain.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_delete_pop.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_delete_pop.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'delete_pop',
                array (
                    'email' => 'user@domain.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/disable_filter:
    get:
      description: |-
        This function disables an email filter.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: disable_filter
      parameters:
        - description: The email address that owns the filter.
          in: query
          name: account
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: The filter's name.
          in: query
          name: filtername
          required: true
          schema:
            example: coffee
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_filter
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          filtername:
                            description: >-
                              The filter's name. The filtername input
                              parameter's value.
                            example: coffee
                            type: string
                          updated:
                            description: |-
                              Whether the function updated the filter.
                              * `1` - Updated,
                              * `0` - Did **not** update.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable email filter for email account
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              disable_filter \
              account='user@example.com' \
              filtername='coffee'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/disable_filter?account=user%40example.com&filtername=coffee
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_disable_filter.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_disable_filter.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/disable_filter/,
                {
                    'account' => 'user@example.com',
                    'filtername' => 'coffee',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_disable_filter.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_disable_filter.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'disable_filter',
                array (
                    'account' => 'user@example.com',
                    'filtername' => 'coffee',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/disable_mailbox_autocreate:
    get:
      description: >-
        This function disables the system's ability to automatically create
        mailboxes for a cPanel account.


        **Note:**

          When you **enable** the UAPI's `Email::enable_mailbox_autocreate` function, the system automatically creates mailboxes. The system creates a new mailbox when it receives an email address in [plus address format](https://en.wikipedia.org/wiki/Email_address#Sub-addressing) and that mailbox does **not** exist. For example, receiving an email from the `user+newmailbox@example.com` address creates the `newmailbox` mailbox if the `newmailbox` mailbox does not exist.
      operationId: disable_mailbox_autocreate
      parameters:
        - description: The email account address for which to disable mailbox autocreation.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_mailbox_autocreate
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the function disabled mailbox autocreation for
                          the cPanel account.

                          * `1` - Mailbox autocreation disabled.

                          * `0` - Mailbox autocreation is **not** disabled.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable cPanel account mailbox autocreation
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              disable_mailbox_autocreate \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/disable_mailbox_autocreate?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_disable_mailbox_autocreate.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_disable_mailbox_autocreate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/disable_mailbox_autocreate/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_disable_mailbox_autocreate.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_disable_mailbox_autocreate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'disable_mailbox_autocreate',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Email/disable_spam_assassin:
    get:
      description: |-
        This function disables Apache SpamAssassin™ for a cPanel account.

        **Important:**

          When you disable the [*Spam Filter* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: disable_spam_assassin
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_spam_assassin
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example:
                          - Apache SpamAssassin™ has been disabled.
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Disable Apache SpamAssassin for cPanel account
      tags:
        - Email
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              disable_spam_assassin
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/disable_spam_assassin
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_disable_spam_assassin.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_disable_spam_assassin.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/disable_spam_assassin/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_disable_spam_assassin.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_disable_spam_assassin.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'disable_spam_assassin'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/disable_spam_autodelete:
    get:
      description: >-
        This function disables the Apache SpamAssassin™ auto-delete spam
        feature.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: disable_spam_autodelete
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_spam_autodelete
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          spam_auto_delete:
                            description: >-
                              Whether the auto-delete spam feature is disabled.
                              `0` is the **only** possible value.
                            enum:
                              - 0
                            example: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable spam box filtering auto-delete
      tags:
        - Email
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              disable_spam_autodelete
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/disable_spam_autodelete
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_disable_spam_autodelete.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_disable_spam_autodelete.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/disable_spam_autodelete/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_disable_spam_autodelete.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_disable_spam_autodelete.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'disable_spam_autodelete'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/disable_spam_box:
    get:
      description: >-
        This function disables spam box filtering for a cPanel account. When you
        disable spam box filtering, the system sends all messages to the
        account's inbox.


        **Notes:**

          * This function **requires** that your hosting provider enables Apache SpamAssassin™ on the server.
          * To **enable** spam box filtering, use the UAPI `Email::enable_spam_box` function.
          * For more information, read our [Spam Filters](https://go.cpanel.net/cpaneldocsSpamFilters) documentation.

        **Important:**

          When you disable the [*Spam Filter* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: disable_spam_box
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_spam_box
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Disable spam box filtering for cPanel account
      tags:
        - Email
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              disable_spam_box
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/disable_spam_box
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_disable_spam_box.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_disable_spam_box.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/disable_spam_box/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_disable_spam_box.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_disable_spam_box.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'disable_spam_box'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Email/dispatch_client_settings:
    get:
      description: >-
        This function sends an email account's client settings to an email
        address.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: dispatch_client_settings
      parameters:
        - description: >-
            The email account username or address for which to send client
            settings.
          example: username
          in: query
          name: account
          required: true
          schema:
            oneOf:
              - example: username
                format: username
                type: string
              - example: username@example.com
                format: email
                type: string
        - description: The email address to send client settings.
          in: query
          name: to
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: dispatch_client_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Send email client settings to an email address
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              dispatch_client_settings \
              to='user@example.com' \
              account='username'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/dispatch_client_settings?to=user%40example.com&account=username
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_dispatch_client_settings.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_dispatch_client_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/dispatch_client_settings/,
                {
                    'to' => 'user@example.com',
                    'account' => 'username',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_dispatch_client_settings.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_dispatch_client_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'dispatch_client_settings',
                array (
                    'to' => 'user@example.com',
                    'account' => 'username',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 62
  /Email/edit_pop_quota:
    get:
      description: This function changes an email address's quota.
      operationId: edit_pop_quota
      parameters:
        - description: >-
            The email account's domain. Defaults to the cPanel account's main
            domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The email account username.
          in: query
          name: email
          required: true
          schema:
            example: user
            type: string
        - description: >-
            The maximum amount of disk space that the new email account may use.
            Defaults to the system value.

            * A positive integer that represents the maximum amount of disk
            space, in megabytes (MB).


            **Note:**


            You **cannot** enter a value that exceeds the maximum email quota.

            * `0` or `unlimited` — The account possesses unlimited disk space.


            If the email account's quota value is set higher (or unlimited) than

            the account's max quota, the account's max quota will be applied
            instead

            of the value entered.


            **Note:**


            This value is only available to users without a maximum email
            account quota.
          in: query
          name: quota
          required: false
          schema:
            example: '500'
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: edit_pop_quota
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update email account's quota
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              edit_pop_quota \
              email='user' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/edit_pop_quota?email=user&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_edit_pop_quota.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_edit_pop_quota.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/edit_pop_quota/,
                {
                    'email' => 'user',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_edit_pop_quota.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_edit_pop_quota.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'edit_pop_quota',
                array (
                    'email' => 'user',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/enable_filter:
    get:
      description: |-
        This function enables an email filter.

        **Important:**

          When you disable the [Receive Mail role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: enable_filter
      parameters:
        - description: The email address that owns the filter.
          in: query
          name: account
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
        - description: The filter's name.
          in: query
          name: filtername
          required: true
          schema:
            example: coffee
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_filter
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          filtername:
                            description: The filter's name.
                            example: coffee
                            type: string
                          updated:
                            description: |-
                              Whether the function updated the filter.
                              * `1` - Updated.
                              * `0` - Did **not** update.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable email filter for email account
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              enable_filter \
              account='username@example.com' \
              filtername='coffee'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/enable_filter?account=username%40example.com&filtername=coffee
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_enable_filter.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_enable_filter.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/enable_filter/,
                {
                    'account' => 'username@example.com',
                    'filtername' => 'coffee',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_enable_filter.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_enable_filter.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'enable_filter',
                array (
                    'account' => 'username@example.com',
                    'filtername' => 'coffee',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/enable_mailbox_autocreate:
    get:
      description: "This function allows the system to automatically create mailboxes for a cPanel account. The system will create a new mailbox when it receives an email address in plus address format and that mailbox does not exist. For example, receiving an email from the user+newmailbox@example.com address creates the newmailbox mailbox if the\_newmailbox\_mailbox does not exist.\n\n**Note:**\n\n  To disable this functionality, use the UAPI Email::disable_mailbox_autocreate function."
      operationId: enable_mailbox_autocreate
      parameters:
        - description: The email account for which to enable mailbox autocreation.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_mailbox_autocreate
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the function enabled mailbox autocreation for
                          the cPanel account.

                          - 1  Mailbox autocreation enabled.

                          - 0  Mailbox autocreation is not enabled.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable cPanel account mailbox autocreation
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              enable_mailbox_autocreate \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/enable_mailbox_autocreate?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_enable_mailbox_autocreate.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_enable_mailbox_autocreate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/enable_mailbox_autocreate/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_enable_mailbox_autocreate.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_enable_mailbox_autocreate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'enable_mailbox_autocreate',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Email/enable_spam_assassin:
    get:
      description: >-
        This function enables Apache SpamAssassin™ for the account.


        **Important:**


        When you disable the [Spam Filter
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: enable_spam_assassin
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_spam_assassin
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable Apache SpamAssassin for cPanel account
      tags:
        - Email
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              enable_spam_assassin
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/enable_spam_assassin
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_enable_spam_assassin.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_enable_spam_assassin.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/enable_spam_assassin/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_enable_spam_assassin.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_enable_spam_assassin.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'enable_spam_assassin'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/enable_spam_box:
    get:
      description: >-
        This function enables spam box filtering for a cPanel account. When you
        enable spam box filtering, the system sends messages marked as spam to a
        spam folder.


        **Notes:**


        * This function **requires** that your hosting provider enables Apache
        SpamAssassin on the server.

        * To **disable** spam box filtering, use the UAPI
        `Email::disable_spam_box` function.

        * For more information, read our [Spam
        Filters](https://go.cpanel.net/cpaneldocsSpamFilters) documentation.


        **Important:**


        When you disable the [Spam Filter](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: enable_spam_box
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_spam_box
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable spam box filtering for cPanel account
      tags:
        - Email
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              enable_spam_box
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/enable_spam_box
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_enable_spam_box.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_enable_spam_box.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/enable_spam_box/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_enable_spam_box.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_enable_spam_box.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'enable_spam_box'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Email/export_lists:
    get:
      description: >-
        This function exports a cPanel account's Mailman mailing lists into a
        CSV file.

        This file is located in mail/exported_lists under the user's home
        directory.
      operationId: export_lists
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: export_lists
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export cPanel account's Mailman mailing lists to a file
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              export_lists
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/export_lists
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_export_lists.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_export_lists.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/export_lists/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_export_lists.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_export_lists.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'export_lists'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.114
  /Email/fetch_charmaps:
    get:
      description: >-
        This function lists the available character encodings.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: fetch_charmaps
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_charmaps
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            map:
                              description: >-
                                A [character
                                encoding](https://en.wikipedia.org/wiki/Character_encoding)
                                that cPanel supports.
                              example: utf-8
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return server's supported character encodings
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              fetch_charmaps
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/fetch_charmaps
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_fetch_charmaps.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_fetch_charmaps.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/fetch_charmaps/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_fetch_charmaps.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_fetch_charmaps.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'fetch_charmaps'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/fts_rescan_mailbox:
    get:
      description: >-
        This function requests that the IMAP Full-Text Search Indexing (powered
        by Apache Solr™) plugin rescan an email account.


        **Note:**


        To enable this function, you **must** install the *IMAP Full-Text Search
        Indexing (powered by Apache Solr™)* plugin in WHM's [*Manage
        Plugins*](https://go.cpanel.net/whmdocsManagePlugins) interface (*WHM >>
        Home >> cPanel >> Manage Plugins*). For more information, read our
        [install_dovecot_fts
        script](https://go.cpanel.net/installdovecotftsscript) documentation.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system disables this
        function.
      operationId: fts_rescan_mailbox
      parameters:
        - description: >-
            The email user's account name.


            **Note:**


            If you do not enter an email address, the function rescans the
            default email account.
          in: query
          name: account
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fts_rescan_mailbox
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the system started the rescan.
                          * `1` - Success.
                          * `0` - Failure.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Start IMAP Full-Text Search scan for email account
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              fts_rescan_mailbox \
              account='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/fts_rescan_mailbox?account=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_fts_rescan_mailbox.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_fts_rescan_mailbox.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/fts_rescan_mailbox/,
                {
                    'account' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_fts_rescan_mailbox.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_fts_rescan_mailbox.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'fts_rescan_mailbox',
                array (
                    'account' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Email/generate_mailman_otp:
    get:
      description: >-
        This function generates a one-time password (OTP) for a mailing list.


        **Note:**


        The generated password expires after one use.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: generate_mailman_otp
      parameters:
        - description: The mailing list.
          in: query
          name: list
          required: true
          schema:
            example: mylist
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: generate_mailman_otp
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: The new one-time password.
                        example: LfFYLPRT_UoS4EDi9lGKuOFK8FaWQsozzPYn8WjM3
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create one-time password for a mailing list
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              generate_mailman_otp \
              list='mylist'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/generate_mailman_otp?list=mylist
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_generate_mailman_otp.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_generate_mailman_otp.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/generate_mailman_otp/,
                {
                    'list' => 'mylist',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_generate_mailman_otp.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_generate_mailman_otp.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'generate_mailman_otp',
                array (
                    'list' => 'mylist',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_auto_responder:
    get:
      description: >-
        This function retrieves autoresponder information.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_auto_responder
      parameters:
        - description: The email account name.
          in: query
          name: email
          required: true
          schema:
            example: user
            format: username
            type: string
        - description: >-
            The autoresponder's [character
            set](https://en.wikipedia.org/wiki/Character_encoding).
          in: query
          name: temp_charset
          required: false
          schema:
            default: utf-8
            example: utf-8
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_auto_responder
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          body:
                            description: >-
                              The contents of the autoresponder message's `Body`
                              section.
                            example: This is an autoresponder message.
                            type: string
                          charset:
                            description: >-
                              The autoresponder's [character
                              set](https://en.wikipedia.org/wiki/Character_encoding).
                            example: UTF-8
                            type: string
                          from:
                            description: >-
                              The contents of the autoresponder message's `From`
                              field.
                            example: User Name
                            type: string
                          interval:
                            description: >-
                              The amount of time, in hours, that the server
                              waits between autoresponder messages to the same
                              address.


                              **Note:**


                              A value of `0` indicates that the system sends a
                              message for each email received.
                            example: 24
                            minimum: 0
                            type: integer
                          is_html:
                            description: >-
                              Whether the body of the autoresponder message
                              begins with an [HTML content type
                              declaration](https://en.wikipedia.org/wiki/Character_encodings_in_HTML#Specifying_the_document.27s_character_encoding).

                              - `1` - Includes an HTML content type declaration.

                              - `0` - Does **not** include an HTML content type
                              declaration.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          start:
                            description: >-
                              When the autoresponder becomes enabled in Unix
                              time.
                            example: 1410277881
                            format: unix_timestamp
                            type: integer
                          stop:
                            description: >-
                              When the autoresponder becomes disabled in Unix
                              time.
                            example: 1410300000
                            format: unix_timestamp
                            type: integer
                          subject:
                            description: >-
                              The contents of the autoresponder message's
                              `Subject` field.
                            example: Autoresponder Subject
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's autoresponder information
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_auto_responder \
              email='user'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_auto_responder?email=user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_auto_responder.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_auto_responder.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_auto_responder/,
                {
                    'email' => 'user',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_auto_responder.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_auto_responder.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_auto_responder',
                array (
                    'email' => 'user',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_charsets:
    get:
      description: >-
        This function lists character encodings that the mail server supports.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_charsets
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_charsets
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of [character
                          encodings](https://en.wikipedia.org/wiki/Character_encoding)
                          that the mail server supports.
                        items:
                          example: utf-8
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return mail server's supported character encodings
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_charsets
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_charsets
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_charsets.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_charsets.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_charsets/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_charsets.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_charsets.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_charsets'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_client_settings:
    get:
      description: >-
        This function retrieves an email account's client settings.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_client_settings
      parameters:
        - description: >-
            The email address for which to send client settings.


            **Note:**


            This parameter defaults to the [system default email
            account](https://go.cpanel.net/systemdefaultemailaccount). 
          in: query
          name: account
          required: false
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_client_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          account:
                            description: The account's email address.
                            example: username@example.com
                            format: email
                            type: string
                          activesync_available:
                            description: |-
                              Whether the account supports ActiveSync.
                              * `1` — Supported.
                              * `0` — **Not** supported.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          activesync_host:
                            description: >-
                              The account's ActiveSync hostname.


                              This return **only** appears if
                              `activesync_available` is `1`.
                            example: mail.example.com
                            format: domain
                            type: string
                          activesync_port:
                            description: >-
                              The account's ActiveSync SSL/TLS port.


                              This return **only** appears if
                              `activesync_available` is `1`.
                            example: 2091
                            maximum: 65535
                            minimum: 1
                            type: integer
                          activesync_username:
                            description: >-
                              The account's ActiveSync username.


                              This return **only** appears if
                              `activesync_available` is `1`.
                            example: username@example.com
                            format: email
                            type: string
                          display:
                            description: The account's display name.
                            example: username@example.com
                            format: email
                            type: string
                          domain:
                            description: The account's domain name.
                            example: domain.com
                            format: domain
                            type: string
                          from_archiving:
                            description: |-
                              Whether the account is a mail archive.
                              * `1` — The account is a mail archive.
                              * `0` — The account is **not** a mail archive.
                            enum:
                              - 1
                              - 0
                            example: 0
                            type: integer
                          has_plaintext_authentication:
                            description: >-
                              Whether the account supports plaintext
                              authentication.


                              * `1` — Supported.

                              * `0` — **Not** supported.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          inbox_host:
                            description: The account's hostname.
                            example: mail.example.com
                            format: domain
                            type: string
                          inbox_insecure_port:
                            description: The account's insecure inbound port.
                            example: 143
                            maximum: 65535
                            minimum: 1
                            type: integer
                          inbox_port:
                            description: The account's secure inbound port.
                            example: 993
                            maximum: 65535
                            minimum: 1
                            type: integer
                          inbox_service:
                            description: |-
                              The service type that the account uses.
                              * `imap`
                              * `pop`
                            enum:
                              - imap
                              - pop
                            example: imap
                            type: string
                          inbox_username:
                            description: The account's username.
                            example: username@example.com
                            format: email
                            type: string
                          mail_domain:
                            description: The account's mail hostname.
                            example: mail.example.com
                            format: domain
                            type: string
                          smtp_host:
                            description: The account's outbound SMTP hostname.
                            example: mail.example.com
                            format: domain
                            type: string
                          smtp_insecure_port:
                            description: The account's insecure outbound SMTP port.
                            example: 25
                            maximum: 65535
                            minimum: 1
                            type: integer
                          smtp_port:
                            description: The account's secure outbound SMTP port.
                            example: 465
                            maximum: 65535
                            minimum: 1
                            type: integer
                          smtp_username:
                            description: The account's SMTP username.
                            example: username@example.com
                            format: email
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's client settings
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_client_settings
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_client_settings
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_client_settings.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_client_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_client_settings/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_client_settings.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_client_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_client_settings'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 62
  /Email/get_default_email_quota:
    get:
      description: >-
        This function retrieves the account's default email quota size, in bytes
        format.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_default_email_quota
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_default_email_quota
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The default email quota in bytes.


                          The value will either be:

                          * The system's default quota value (32 gigabytes).

                          * The account's quota value, if it is less than the
                          system's default value.
                        example: 34359738368
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's default email quota
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_default_email_quota
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_default_email_quota
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_default_email_quota.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_default_email_quota.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_default_email_quota/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_default_email_quota.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_default_email_quota.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_default_email_quota'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /Email/get_default_email_quota_mib:
    get:
      description: >-
        This function retrieves the account's default email quota size in
        [mebibytes](https://en.wikipedia.org/wiki/Mebibyte) (MiB).


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_default_email_quota_mib
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_default_email_quota_mib
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The default email quota in
                          [mebibytes](https://en.wikipedia.org/wiki/Mebibyte)
                          (MiB).


                          The value will either be:

                          * The system's default quota value (32 gigabytes).

                          * The account's quota value, if it is less than the
                          system's default value.
                        example: 32768
                        maximum: 4294967296
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's default email quota in MiB
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_default_email_quota_mib
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_default_email_quota_mib
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_default_email_quota_mib.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_default_email_quota_mib.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_default_email_quota_mib/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_default_email_quota_mib.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_default_email_quota_mib.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_default_email_quota_mib'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /Email/get_disk_usage:
    get:
      description: >-
        This function retrieves the disk space that an email account uses.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_disk_usage
      parameters:
        - description: The email account's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The email account username.
          in: query
          name: user
          required: true
          schema:
            example: user
            format: username
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_disk_usage
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          diskused:
                            description: >-
                              The disk space that the email account uses.

                              * A positive floating-point value that represents
                              the disk space, used in megabytes (MB).

                              * `0` - The account posesses an unlimited disk
                              quota.
                            example: 399.6
                            type: number
                          domain:
                            description: The email account's domain.
                            example: example.com
                            format: domain
                            type: string
                          login:
                            description: The email address or the main account username.
                            example: user@example.com
                            format: email
                            type: string
                          user:
                            description: The email account's username.
                            example: user
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's disk usage
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_disk_usage \
              user='user' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_disk_usage?user=user&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_disk_usage.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_disk_usage.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_disk_usage/,
                {
                    'user' => 'user',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_disk_usage.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_disk_usage.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_disk_usage',
                array (
                    'user' => 'user',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_filter:
    get:
      description: >-
        This function retrieves an email filter's information.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_filter
      parameters:
        - description: The email address that owns the filter.
          in: query
          name: account
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: The filter's name.
          in: query
          name: filtername
          required: true
          schema:
            example: coffee
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_filter
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          actions:
                            description: >-
                              An array of objects that contains the filter's
                              actions.
                            items:
                              properties:
                                action:
                                  description: >-
                                    The filter's action.

                                    * `deliver` -  The filter sends mail to the
                                    destination address.

                                    * `fail` -  The filter forces a delivery
                                    failure.

                                    * `finish` -  The filter stops message
                                    processing.

                                    * `save` -  The filter saves mail to the
                                    destination file.

                                    * `pipe` -  The filter sends mail to the
                                    destination application.
                                  enum:
                                    - deliver
                                    - fail
                                    - finish
                                    - save
                                    - pipe
                                  type: string
                                dest:
                                  description: >-
                                    The destination to which the filter sends
                                    mail.


                                    A destination can be one of the following.

                                    * A file path.

                                    * An application path.

                                    * A valid email address.
                                  oneOf:
                                    - example: /dev/null
                                      format: path
                                      type: string
                                    - example: example@test.com
                                      format: email
                                      type: string
                                number:
                                  description: >-
                                    The filter's position in the order of the
                                    account's filters.
                                  example: 1
                                  minimum: 1
                                  type: integer
                              type: object
                            type: array
                          filtername:
                            description: The filter's name.
                            example: coffee
                            type: string
                          metadata:
                            properties:
                              transformed:
                                description: Post-processing may have transformed the data.
                                enum:
                                  - 1
                                example: 1
                                type: integer
                            type: object
                          rules:
                            description: >-
                              An array of objects that contains the filter's
                              rules.
                            items:
                              properties:
                                match:
                                  description: |-
                                    The filter's match type.

                                    * `is`
                                    * `matches`
                                    * `contains`
                                    * `does not contain`
                                    * `begins`
                                    * `does not begin`
                                    * `ends`
                                    * `does not end`
                                    * `does not match`
                                    * `is above`
                                    * `is not above`
                                    * `is below`
                                    * `is not below`
                                  enum:
                                    - is
                                    - matches
                                    - contains
                                    - does not contain
                                    - begins
                                    - does not begin
                                    - ends
                                    - does not end
                                    - does not match
                                    - is above
                                    - is not above
                                    - is below
                                    - is not below
                                  example: contains
                                  type: string
                                number:
                                  description: >-
                                    The filter's position in the order of the
                                    account's filters.
                                  example: 1
                                  minimum: 1
                                  type: integer
                                opt:
                                  description: |-
                                    The connection between multiple conditions.
                                    * `and` -  Match both conditions.
                                    * `or` -  Match either condition.
                                    * `null` -  There is only one condition.
                                  enum:
                                    - and
                                    - or
                                    - 'null'
                                  example: or
                                  type: string
                                part:
                                  description: >-
                                    The queried email section.

                                    * `$header_from:` -  Matches against the
                                    From: section.

                                    * `$header_subject:` -  Matches against the
                                    Subject: section.

                                    * `$header_to:` -  Matches against the To:
                                    section.

                                    * `$reply_address:` -  Matches against the
                                    Reply To: section.

                                    * `$message_body` -  Matches against the
                                    message's body.

                                    * `$message_headers` -  Matches against the
                                    message's headers.

                                    * `foranyaddress $h_to:,$h_cc:,$h_bcc:` - 
                                    Matches against all message recipients.

                                    * `not delivered` -  Matches if the message
                                    is not queued for delivery.

                                    * `error_message` -  Matches if the incoming
                                    message bounced.
                                  enum:
                                    - '$header_from:'
                                    - '$header_subject:'
                                    - '$header_to:'
                                    - '$reply_address:'
                                    - $message_body
                                    - $message_headers
                                    - 'foranyaddress $h_to:,$h_cc:,$h_bcc:'
                                    - not delivered
                                    - error_message
                                  example: $message_body
                                  type: string
                                val:
                                  description: The matched value.
                                  example: coconut
                                  type: string
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email filter's information
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_filter \
              account='user@example.com' \
              filtername='coffee'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_filter?account=user%40example.com&filtername=coffee
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_filter.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_filter.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_filter/,
                {
                    'account' => 'user@example.com',
                    'filtername' => 'coffee',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_filter.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_filter.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_filter',
                array (
                    'account' => 'user@example.com',
                    'filtername' => 'coffee',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_held_message_count:
    get:
      description: >-
        This function returns the count of outbound email messages held in the
        mail queue for the specified email account.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_held_message_count
      parameters:
        - description: The email address to query.
          in: query
          name: email
          required: false
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_held_message_count
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The number of messages currently held in the mail
                          queue.
                        example: 0
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's outgoing message count
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_held_message_count
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_held_message_count
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_held_message_count.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_held_message_count.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_held_message_count/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_held_message_count.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_held_message_count.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_held_message_count'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /Email/get_lists_total_disk_usage:
    get:
      description: >-
        This function returns the total disk usage for the [mailing
        lists](https://go.cpanel.net/cpaneldocsMailingLists) of a cPanel
        account.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_lists_total_disk_usage
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_lists_total_disk_usage
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The total disk usage for the [mailing
                          lists](https://go.cpanel.net/MailingLists) of a cPanel
                          account, in bytes.
                        example: 1024
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's mailing list disk usage
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_lists_total_disk_usage
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_lists_total_disk_usage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_lists_total_disk_usage.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_lists_total_disk_usage.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_lists_total_disk_usage/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_lists_total_disk_usage.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_lists_total_disk_usage.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_lists_total_disk_usage'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Email/get_mailbox_autocreate:
    get:
      description: >-
        This function checks whether a cPanel account will automatically create
        mailboxes when it receives an email address in [plus address
        format](https://en.wikipedia.org/wiki/Email_address#Sub-addressing).


        **Note:**


        To enable or disable this functionality, use the UAPI's
        `Email::enable_mailbox_autocreate` and
        `Email::disable_mailbox_autocreate` functions.
      operationId: get_mailbox_autocreate
      parameters:
        - description: The email account address to query.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_mailbox_autocreate
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the cPanel account can automatically create
                          mailboxes.

                          * `1` — The cPanel account can automatically create
                          mailboxes.

                          * `0` — The cPanel account **cannot** automatically
                          create mailboxes.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's mailbox autocreate status
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_mailbox_autocreate \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_mailbox_autocreate?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_mailbox_autocreate.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_mailbox_autocreate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_mailbox_autocreate/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_mailbox_autocreate.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_mailbox_autocreate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_mailbox_autocreate',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Email/get_mailman_delegates:
    get:
      description: >-
        This function lists a mailing list's administrators.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_mailman_delegates
      parameters:
        - description: The name of a Mailman mailing list on the cPanel account.
          in: query
          name: list
          required: true
          schema:
            example: mylist
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_mailman_delegates
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          delegates:
                            description: An array of the mailing list's administrators.
                            items:
                              example: secondadmin@example.com
                              format: email
                              type: string
                            type: array
                          metadata:
                            properties:
                              transformed: {}
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return mailing list administrators
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_mailman_delegates \
              list='mylist'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_mailman_delegates?list=mylist
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_mailman_delegates.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_mailman_delegates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_mailman_delegates/,
                {
                    'list' => 'mylist',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_mailman_delegates.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_mailman_delegates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_mailman_delegates',
                array (
                    'list' => 'mylist',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_main_account_disk_usage:
    get:
      description: >-
        This function returns the disk space that the main account uses.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_main_account_disk_usage
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_main_account_disk_usage
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The current amount of disk space that the main email
                          account uses.
                        example: 3076 bytes
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return primary email account's disk usage
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_main_account_disk_usage
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_main_account_disk_usage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_main_account_disk_usage.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_main_account_disk_usage.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_main_account_disk_usage/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_main_account_disk_usage.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_main_account_disk_usage.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_main_account_disk_usage'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_main_account_disk_usage_bytes:
    get:
      description: >-
        This function returns the disk space that the cPanel account uses.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_main_account_disk_usage_bytes
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_main_account_disk_usage_bytes
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The current amount of disk space that the main email
                          account uses, in bytes.
                        example: 3076
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return primary email account's disk usage in bytes
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_main_account_disk_usage_bytes
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_main_account_disk_usage_bytes
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_main_account_disk_usage_bytes.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_main_account_disk_usage_bytes.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_main_account_disk_usage_bytes/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_main_account_disk_usage_bytes.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_main_account_disk_usage_bytes.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_main_account_disk_usage_bytes'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /Email/get_max_email_quota:
    get:
      description: >-
        This function retrieves the account's maximum email quota size, in bytes
        format.


        **Important:**

          When you disable the [Receive Mail](https://go.cpanel.net/serverroles) role, the system **disables** this function.
      operationId: get_max_email_quota
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_max_email_quota
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The account's maximum email quota, in bytes format.
                          The function will

                          return one of the following values:


                          * The system's default maximum quota (4
                          [Pebibytes](https://en.wikipedia.org/wiki/Pebibyte)).

                          * The account's quota value, if it is **less** than
                          the default

                          system quota value.
                        example: 4503599627370496
                        maximum: 4503599627370496
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's max quota size
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_max_email_quota
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_max_email_quota
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_max_email_quota.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_max_email_quota.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_max_email_quota/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_max_email_quota.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_max_email_quota.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_max_email_quota'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /Email/get_max_email_quota_mib:
    get:
      description: >-
        This function retrieves the account's maximum email account quota size,
        in

        [Mebibytes (MiB)](https://en.wikipedia.org/wiki/Mebibyte) format.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: get_max_email_quota_mib
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_max_email_quota_mib
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The account's maximum email account quota size, in
                          Mebibytes (MiB).
                        example: 4294967296
                        maximum: 4294967296
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's max quota size in MiB
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_max_email_quota_mib
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_max_email_quota_mib
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_max_email_quota_mib.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_max_email_quota_mib.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_max_email_quota_mib/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_max_email_quota_mib.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_max_email_quota_mib.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_max_email_quota_mib'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /Email/get_pop_quota:
    get:
      description: >-
        This function retrieves an email account's quota.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_pop_quota
      parameters:
        - description: >-
            The email account username.  For example, user if the email address
            is user@example.com.
          in: query
          name: email
          required: true
          schema:
            example: user
            type: string
        - description: |-
            Whether to return the quota as bytes.

            * `1` — Return the quota as bytes.
            * `0` — Return the quota as megabytes (MB).
          in: query
          name: as_bytes
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The email account's domain. This parameter defaults to the cPanel
            account's main domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_pop_quota
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The email account's quota.


                          **Note:**


                          This value's unit of measure depends on the `as_bytes`
                          input parameter's value.
                        example: 262144000
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's quota
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_pop_quota \
              email='user'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_pop_quota?email=user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_pop_quota.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_pop_quota.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_pop_quota/,
                {
                    'email' => 'user',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_pop_quota.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_pop_quota.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_pop_quota',
                array (
                    'email' => 'user',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_spam_settings:
    get:
      description: >-
        This function retrieves the Apache SpamAssassin™ settings for the
        account.


        **Important:**


        When you disable the [SpamFilter
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_spam_settings
      parameters:
        - description: >-
            Retrieve a specific user account's SpamAssassin settings.


            **Note:**


            If you do **not** specify this parameter, the function returns the
            settings for [the default email
            account](https://go.cpanel.net/DefaultAddress).
          in: query
          name: account
          required: false
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_spam_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cpuser_spam_auto_delete:
                            description: >-
                              The cPanel user's account-wide spam filter setting


                              * `1` - Enabled.

                              * `0` - Not enabled.


                              **NOTE:**


                              This key **only** appears if the `account`
                              parameter is passed **and** the account does
                              **not** have a custom setting
                            enum:
                              - 0
                              - 1
                            example: 1
                            nullable: true
                            type: integer
                          cpuser_spam_auto_delete_score:
                            description: >-
                              The cPanel user's account-wide spam filter
                              threshold score. For more information, see
                              `Email::add_spam_filter`.


                              **NOTE:**


                              This key **only** appears if the `account`
                              parameter is passed **and** the account does
                              **not** have a custom setting
                            example: 8
                            minimum: 0
                            nullable: true
                            type: integer
                          rewrites_subjects:
                            description: >-
                              Whether the user's spam filter rewrites the
                              subject lines of spam messages.


                              * `1` -  Rewrite.

                              * `0` -  No rewrites.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          spam_as_acl:
                            description: >-
                              Whether the user's spam filter uses Apache
                              SpamAssassin as an ACL.


                              **NOTE:**


                              The value of this parameter is **always** `1`

                              * `1` -  SpamAssassin is an ACL.
                            enum:
                              - 1
                            example: 1
                            type: integer
                          spam_auto_delete:
                            description: >-
                              Whether the user's autodelete function is enabled.


                              * `1` -  Enabled.

                              * `0` -  Not enabled.


                              **NOTE::**


                              This key does **not** appear if the
                              `cpuser_spam_auto_delete` key appears
                            enum:
                              - 0
                              - 1
                            example: 0
                            nullable: true
                            type: integer
                          spam_auto_delete_score:
                            description: >-
                              Displays the user's spam filter threshold.  For
                              more information, see `Email::add_spam_filter`.


                              **Note:**


                              This key does **not** appear if the
                              `cpuser_spam_auto_delete_score` key appears
                            example: 8
                            minimum: 0
                            nullable: true
                            type: integer
                          spam_box_enabled:
                            description: |-
                              Whether the user's spam box is enabled.

                              * `1` -  Enabled.
                              * `0` -  Not enabled.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          spam_enabled:
                            description: >-
                              Whether the server's global spam filtering is
                              enabled.


                              * `1` -  Enabled.

                              * `0` -  Not enabled.


                              **Note:**

                               This value will **only** return `0` if the cPanel user disables Apache SpamAssassin.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          spam_status_changeable:
                            description: >-
                              Whether the server allows cPanel users to
                              configure Apache SpamAssassin settings.


                              * `1` -  Allowed.

                              * `0` -  Not allowed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account Apache SpamAssassin settings
      tags:
        - Email
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_spam_settings
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_spam_settings
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_spam_settings.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_spam_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_spam_settings/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_spam_settings.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_spam_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_spam_settings'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/get_webmail_settings:
    get:
      description: >-
        This function retrieves an email account's Webmail settings.


        **Important:**


        When you disable the [_Receive Mail_
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_webmail_settings
      parameters:
        - description: >-
            The email account.


            **Note:**


            If you do **not** specify a value, the function retrieves settings
            for the cPanel account's default mail account.
          in: query
          name: account
          required: false
          schema:
            oneOf:
              - example: user@example.com
                format: email
                type: string
              - example: user
                format: username
                type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_webmail_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          domain:
                            description: The email account's mail server hostname.
                            example: mail.example.com
                            format: domain
                            type: string
                          has_maildir:
                            description: >-
                              Whether `Maildir` is enabled for the email
                              account.


                              * `1` — Enabled.


                              It is not possible to disable `Maildir`.
                            enum:
                              - 1
                            example: 1
                            type: integer
                          user:
                            description: The email account.
                            oneOf:
                              - example: user@example.com
                                format: email
                                type: string
                              - example: user
                                format: username
                                type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's Webmail settings
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              get_webmail_settings
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/get_webmail_settings
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_get_webmail_settings.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_get_webmail_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/get_webmail_settings/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_get_webmail_settings.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_get_webmail_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'get_webmail_settings'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/has_delegated_mailman_lists:
    get:
      description: >-
        This function checks an account's administrative privileges on mailing
        lists.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: has_delegated_mailman_lists
      parameters:
        - description: The email address.
          in: query
          name: delegate
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_delegated_mailman_lists
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the email address has administrative
                          privileges on one or more mailing lists on the cPanel
                          account.

                          * `1` — The email address has administrative
                          privileges.

                          * `0` — The email address does **not** have
                          administrative privileges.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email account's mailing list privileges
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              has_delegated_mailman_lists \
              delegate='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/has_delegated_mailman_lists?delegate=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_has_delegated_mailman_lists.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_has_delegated_mailman_lists.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/has_delegated_mailman_lists/,
                {
                    'delegate' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_has_delegated_mailman_lists.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_has_delegated_mailman_lists.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'has_delegated_mailman_lists',
                array (
                    'delegate' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/has_plaintext_authentication:
    get:
      description: >-
        This function checks whether plaintext authentication is enabled on the
        Dovecot mail server.


        **Important:**

          When you disable the [Receive Mail role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: has_plaintext_authentication
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_plaintext_authentication
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether plaintext authentication is enabled on the
                          Dovecot mail server.

                          * `1` - Enabled.

                          * `0` - Disabled.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether plaintext authentication is enabled
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              has_plaintext_authentication
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/has_plaintext_authentication
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_has_plaintext_authentication.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_has_plaintext_authentication.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/has_plaintext_authentication/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_has_plaintext_authentication.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_has_plaintext_authentication.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'has_plaintext_authentication'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Email/hold_outgoing:
    get:
      description: >-
        This function sets Exim's queue to not send outgoing mail from an email
        account.


        **Notes:**


        * To send all mail from the queue, use the UAPI
        `Email::release_outgoing` function.

        * To reject outgoing mail and not place mail in a queue, use the UAPI
        `Email::suspend_outgoing` function.

        * This function does **not** hold local outgoing mail.
      operationId: hold_outgoing
      parameters:
        - description: The email account's username.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: hold_outgoing
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Stop email account's outgoing mail
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              hold_outgoing \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/hold_outgoing?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_hold_outgoing.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_hold_outgoing.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/hold_outgoing/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_hold_outgoing.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_hold_outgoing.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'hold_outgoing',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Email/list_auto_responders:
    get:
      description: |-
        This function lists a domain's autoresponders.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_auto_responders
      parameters:
        - description: The domain name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            A [Perl Compatible Regular Expression
            (PCRE)](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions)
            that filters the results.
          in: query
          name: regex
          required: false
          schema:
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_auto_responders
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            email:
                              description: The autoresponder's email address.
                              example: user@example.com
                              format: email
                              type: string
                            subject:
                              description: >-
                                The contents of the autoresponder message's
                                `Subject:` field.
                              example: Autoresponder Subject
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domain's autoresponders
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_auto_responders \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_auto_responders?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_auto_responders.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_auto_responders.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_auto_responders/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_auto_responders.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_auto_responders.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_auto_responders',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_default_address:
    get:
      description: |-
        This function retrieves a domain's default address.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_default_address
      parameters:
        - description: The user whose default addresses to list.
          in: query
          name: user
          required: true
          schema:
            example: user
            format: username
            type: string
        - description: >-
            The domain. If you do not specify a value, the function lists
            default addresses for all of the cPanel account's domains.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_default_address
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: An object of data for a domain.
                        items:
                          properties:
                            defaultaddress:
                              description: >-
                                The domain's default address.

                                * An email account username - The system
                                forwards unroutable mail to this address.

                                * `:fail:` - The system bounces unroutable mail
                                back to the sender, and sends a failure message.

                                * `:blackhole:` - The system deletes unroutable
                                mail without a failure message.

                                * The path to an application - The system pipes
                                unroutable mail to this application.
                              example: user
                              type: string
                            domain:
                              description: The domain name.
                              example: example.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domain's default email address
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_default_address \
              user='user'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_default_address?user=user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_default_address.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_default_address.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_default_address/,
                {
                    'user' => 'user',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_default_address.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_default_address.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_default_address',
                array (
                    'user' => 'user',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_domain_forwarders:
    get:
      description: |-
        This function lists domain-level forwarders.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_domain_forwarders
      parameters:
        - description: >-
            The domain name to query. If you do not use this parameter, the
            function returns all domain-level forwarders on the cPanel account.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_domain_forwarders
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing domain forwarder
                          information.
                        items:
                          properties:
                            dest:
                              description: The forwarded domain.
                              example: example.com
                              format: domain
                              type: string
                            forward:
                              description: The destination domain.
                              example: forwardtome.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domain-level forwarders
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_domain_forwarders
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_domain_forwarders
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_domain_forwarders.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_domain_forwarders.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_domain_forwarders/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_domain_forwarders.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_domain_forwarders.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_domain_forwarders'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_filters:
    get:
      description: >-
        This function lists account-level mail filters. For more information
        about Exim filters, read [Exim’s
        documentation](http://www.exim.org/exim-html-3.30/doc/html/filter.html).


        **Important**:

          When you disable the [Mail Receive role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_filters
      parameters:
        - description: >-
            The email address or cPanel account username for which to return a
            list of filters. If you do not specify this value, the function
            lists all of the cPanel account’s account-level filters.
          in: query
          name: account
          required: false
          schema:
            oneOf:
              - example: user@example.com
                format: email
                type: string
              - example: username
                format: username
                type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_filters
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            actions:
                              description: >-
                                An array of objects that descibe each of the
                                filter’s actions.
                              items:
                                properties:
                                  action:
                                    description: >-
                                      The filter’s action.


                                      Some common ones include:


                                      * `deliver` — The filter sends mail to the
                                      dest address.

                                      * `fail` — The filter forces a delivery
                                      failure.

                                      * `finish` — The filter stops message
                                      processing.

                                      * `save` — The filter saves mail to the
                                      dest file.

                                      * `pipe` — The filter sends mail to the
                                      dest application.


                                      For more information, read [Exim’s _Filter
                                      commands_
                                      documentation](http://www.exim.org/exim-html-3.30/doc/html/filter_11.html).
                                    type: string
                                  dest:
                                    description: >-
                                      The destination to which the filter sends
                                      mail.

                                      * A file path.

                                      * An application path.

                                      * A valid email address.
                                    example: /dev/null
                                    type: string
                                type: object
                              type: array
                            enabled:
                              description: Whether the filter is enabled.
                              type: integer
                            filtername:
                              description: The filter’s name.
                              example: coffee
                              type: string
                            rules:
                              description: >-
                                An array of objects that descibe each of the
                                filter’s rules.
                              items:
                                properties:
                                  match:
                                    description: The filter’s match type.
                                    enum:
                                      - is
                                      - matches
                                      - contains
                                      - does not contain
                                      - begins
                                      - does not begin
                                      - ends
                                      - does not end
                                      - does not match
                                      - is above
                                      - is not above
                                      - is below
                                      - is not below
                                    example: contains
                                    type: string
                                  opt:
                                    description: >-
                                      The connection between multiple
                                      conditions.
                                        * `and` — Match both conditions.
                                        * `or` — Match either condition.
                                        * `null` — Only one condition exists.
                                    enum:
                                      - and
                                      - or
                                      - 'null'
                                    example: or
                                    type: string
                                  part:
                                    description: >-
                                      The queried email section.


                                      Some common ones include:


                                      * `$header_from:` — Matches against the
                                      `From:` section.

                                      * `$header_subject:` — Matches against the
                                      `Subject:` section.

                                      * `$header_to:` — Matches against the
                                      `To:` section.

                                      * `$reply_address:` — Matches against the
                                      `Reply To:` section.

                                      * `$message_body` — Matches against the
                                      message’s body.

                                      * `$message_headers` — Matches against the
                                      message’s headers.

                                      * `foranyaddress $h_to:,$h_cc:,$h_bcc:` — 
                                      Matches against all message recipients.

                                      * `not delivered` — Matches if the system
                                      has not queued the message for delivery.

                                      * `error_message` — Matches if the
                                      incoming message bounced.


                                      For more options, read [Exim’s
                                      documentation](https://exim.org/exim-html-3.30/doc/html/filter.html).
                                    example: $message_body
                                    type: string
                                  val:
                                    description: The matched value. A string value.
                                    example: coconut
                                    type: string
                                type: object
                              type: array
                            unescaped:
                              deprecated: true
                              type: boolean
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return account-level email filters
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_filters
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_filters
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_filters.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_filters.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_filters/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_filters.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_filters.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_filters'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_filters_backups:
    get:
      description: >-
        This function lists all of the cPanel account's domains that use
        domain-level filters.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_filters_backups
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_filters_backups
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contains information about
                          domains with domain-level filters.
                        items:
                          properties:
                            domain:
                              description: A domain with a domain-level filter.
                              example: example.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains with domain-level email filters
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_filters_backups
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_filters_backups
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_filters_backups.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_filters_backups.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_filters_backups/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_filters_backups.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_filters_backups.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_filters_backups'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_forwarders:
    get:
      description: |-
        This function lists a domain's forwarders.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_forwarders
      parameters:
        - description: The domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            A [Perl Compatible Regular Expression
            (PCRE)](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions)
            that filters the results. If you do **not** use this parameter, the
            function returns results for all of the account's filters.
          in: query
          name: regex
          required: false
          schema:
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_forwarders
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            dest:
                              description: The forwarded address.
                              example: forwarded@example.com
                              format: email
                              type: string
                            forward:
                              description: The forwarded mail's destination.
                              example: user@example.com
                              format: email
                              type: string
                            html_dest:
                              description: >-
                                The forwarded address in an HTML-compatible
                                format.
                              example: forwarded@example.com
                              format: email
                              type: string
                            html_forward:
                              description: >-
                                The forwarded mail's destination in an
                                HTML-compatible format.
                              example: user@example.com
                              format: email
                              type: string
                            uri_dest:
                              description: The forwarded address in a URI-encoded format.
                              example: forwarded%40example.com
                              type: string
                            uri_forward:
                              description: >-
                                The forwarded mail's destination in a
                                URI-encoded format.
                              example: user%40example.com
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domain's forwarders
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_forwarders \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_forwarders?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_forwarders.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_forwarders.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_forwarders/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_forwarders.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_forwarders.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_forwarders',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_forwarders_backups:
    get:
      description: |-
        This function lists the domains with domain-level forwarders.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_forwarders_backups
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_forwarders_backups
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            domain:
                              description: domain that uses a domain-level filter.
                              example: example.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains with domain-level forwarders
      tags:
        - Email
        - Email Forwarding
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_forwarders_backups
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_forwarders_backups
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_forwarders_backups.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_forwarders_backups.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_forwarders_backups/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_forwarders_backups.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_forwarders_backups.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_forwarders_backups'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_lists:
    get:
      description: This function lists the account's Mailman mailing lists.
      operationId: list_lists
      parameters:
        - description: >-
            The domain to query. If you do **not** use this parameter, the
            function lists mailing lists for all of the cPanel account's
            domains.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: "A [Perl Compatible Regular Expression (PCRE)](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions)\_that filters the results."
          in: query
          name: regex
          required: false
          schema:
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_lists
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            accesstype:
                              description: >-
                                The level of access that users have to the
                                mailing list.

                                * `private` - The list has **all** of the
                                following settings:
                                  * The list has private archives.
                                  * The administrator **must** approve subscriptions.
                                  * The Mailman directory page does **not** display the list.
                                * `public` - The list has **any** of the
                                following settings:
                                  * The list has public archives.
                                  * Anyone can subscribe.
                                  * The Mailman directory page displays the list.
                              enum:
                                - private
                                - public
                              example: public
                              type: string
                            advertised:
                              description: >-
                                Whether the Mailman directory page displays the
                                list.

                                * `1` - The Mailman directory page displays the
                                list.

                                * `0` - The Mailman directory page does not
                                display the list.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            archive_private:
                              description: |-
                                Whether the mailing list archive is `private`.
                                * `1` - The mailing list archive is `private`.
                                * `0` - The mailing list archive is `public`.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            desthost:
                              description: >-
                                The IP address or domain name that handles mail
                                for the mailing list's domain.

                                * A valid hostname.

                                * An IPv4 address.


                                **Note:**

                                  If the function **cannot** resolve the IP address to a hostname, it will return the IP address.
                              example: 172.16.254.1
                              oneOf:
                                - format: domain
                                  type: string
                                - format: ipv4
                                  type: string
                            diskused:
                              description: >-
                                The disk space that the mailing list currently
                                uses, measured in megabytes (MB).
                              example: 20379
                              minimum: 0
                              type: integer
                            humandiskused:
                              description: >-
                                The disk space that the mailing list uses, in
                                human-readable format.
                              example: 19.9\u00a0KB
                              type: string
                            list:
                              description: The mailing list name and domain.
                              example: list@example.com
                              format: email
                              type: string
                            listadmin:
                              description: >-
                                The mailing list's administrators' email
                                addresses. A comma-separated list of email
                                addresses.
                              example: admin@example.com,admin2@example.com
                              type: string
                            listid:
                              description: >-
                                The mailing list's name and domain. The mailing
                                list name, an underscore (_), and the domain.
                              example: list_example.com
                              type: string
                            subscribe_policy:
                              description: >-
                                The level of control that the mailing list
                                administrator has over new subscribers.

                                * `1` - Anyone can subscribe. The system sends a
                                confirmation email.

                                * `2` - The administrator **must** approve
                                subscriptions. The system does **not** send a
                                confirmation email.

                                * `3` - The administrator **must** approve
                                subscriptions. The system sends a confirmation
                                email.
                              enum:
                                - 1
                                - 2
                                - 3
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's mailing lists
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_lists
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_lists
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_lists.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_lists.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_lists/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_lists.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_lists.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_lists'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_mail_domains:
    get:
      description: |-
        This function lists the account's mail domains.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.

        **Note:**

          This function **always** returns the account's main domain first.

        **Additional Note:**

          By default, temporary domains (*.cpanel.site) are excluded. Use the `return_temporary_domain` parameter to include them.
      operationId: list_mail_domains
      parameters:
        - description: >-
            Whether to list `www.` addresses.

            * `1` — List `www.` addresses.

            * `0` — Do **not** list `www.` addresses.

            For example, if you specify `1`, the function's output would include
            both `example.com` and `www.example.com`. If you specify `0`, the
            output would include **only** `example.com`.
          in: query
          name: add_www
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            Whether to list wildcard addresses.

            * `1` — List wildcard addresses.

            * `0` — Do **not** list wildcard addresses.

            For example, if you specify `1`, the function's output would include
            both `example.com` and `*.example.com`. If you specify `0`, the
            output would include **only** `example.com`.
          in: query
          name: include_wildcard
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to include temporary domains (*.cpanel.site) in the output.
            By default, temporary domains are excluded.
          in: query
          name: return_temporary_domain
          required: false
          schema:
            default: false
            type: boolean
        - description: >-
            The name of the domain that the function returns with the `select
            `output parameter. If you do **not** use this parameter, the
            function will **not** return the `select` parameter with any
            domains.
          in: query
          name: select
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_mail_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            domain:
                              description: The domain name.
                              example: example.com
                              format: domain
                              type: string
                            select:
                              default: 1
                              description: >-
                                The domain that you specified in the `select`
                                input parameter. The function **only** returns
                                this value if you included the `select`
                                parameter when you called the function.


                                **Note:**

                                  Because this value **only** appears if you included the `select` input parameter, The value **always** defaults to `1`.
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's mail domains
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_mail_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_mail_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_mail_domains.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_mail_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_mail_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_mail_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_mail_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_mail_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_mxs:
    get:
      description: |-
        This function lists Mail Exchanger (MX) records.

        **Important:**

          When you disable the [*DNS* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_mxs
      parameters:
        - description: >-
            The domain to query. If you do **not** use this parameter, the
            function returns MX records for all of the cPanel account's domains.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_mxs
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            alwaysaccept:
                              description: >-
                                Whether the domain's highest-priority mail
                                exchanger accepts local mail.

                                * `1` - Accept local mail.

                                * `0` - Does **not** accept local mail.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            detected:
                              description: >-
                                The domain's highest-priority mail exchanger's
                                type.

                                * `auto`

                                * `local`

                                * `remote`

                                * `secondary`
                              enum:
                                - auto
                                - local
                                - remote
                                - secondary
                              example: local
                              type: string
                            domain:
                              description: The domain name.
                              example: example.com
                              format: domain
                              type: string
                            entries:
                              description: >-
                                An array of objects that contains information
                                about mail exchangers.
                              items:
                                properties:
                                  domain:
                                    description: The mail exchanger's domain.
                                    example: example.com
                                    format: domain
                                    type: string
                                  entrycount:
                                    description: >-
                                      The mail exchanger's order in the list of
                                      priorities. For example, the mail
                                      exchanger with the highest priority
                                      returns `1`, and the next highest priority
                                      returns `2`.
                                    example: 1
                                    minimum: 1
                                    type: integer
                                  mx:
                                    description: The mail exchanger's name.
                                    example: mx.example.com
                                    format: domain
                                    type: string
                                  priority:
                                    description: >-
                                      The mail exchanger's [priority
                                      value](https://go.cpanel.net/whmdocsEditMXEntry).
                                    example: 5
                                    minimum: 0
                                    type: integer
                                  row:
                                    description: >-
                                      Whether the mail exchanger is an odd or an
                                      even entry.

                                      * `even`

                                      * `odd`
                                    enum:
                                      - even
                                      - odd
                                    example: odd
                                    type: string
                                type: object
                              type: array
                            local:
                              description: >-
                                Whether the domain's highest priority mail
                                exchanger is a local mail exchanger.

                                * `1` - Local.

                                * `0` - **Not** local.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            mx:
                              description: >-
                                The domain's highest-priority mail exchanger's
                                name.
                              example: mx.example.com
                              format: domain
                              type: string
                            mxcheck:
                              description: >-
                                The domain's highest-priority mail exchanger's
                                type.

                                * `auto`

                                * `local`

                                * `remote`

                                * `secondary`
                              enum:
                                - auto
                                - local
                                - remote
                                - secondary
                              example: auto
                              type: string
                            remote:
                              description: >-
                                Whether the domain's highest-priority mail
                                exchanger is remote.

                                * `1` - Remote.

                                * `0` - **Not** remote.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            secondary:
                              description: >-
                                Whether the domain's highest-priority mail
                                exchanger is secondary.

                                * `1` - Secondary.

                                * `0` - **Not** secondary.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            status:
                              description: |-
                                Whether the function succeeded.
                                * `1` - Success.
                                * `0` - Failure.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            statusmsg:
                              description: |-
                                A success or error message message.
                                * A success message.
                                * An error message.
                              example: Fetched MX List
                              type: string
                          type: object
                        properties: {}
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return mail exchanger records
      tags:
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_mxs
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_mxs
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_mxs.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_mxs.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_mxs/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_mxs.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_mxs.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_mxs'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_pops:
    get:
      description: |-
        This function lists the cPanel account's email accounts.

        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_pops
      parameters:
        - description: |-
            Whether to skip the email database's validation check.
            * `1` — Skip the validation check.
            * `0` — Run the validation check.
          in: query
          name: no_validate
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            A [Perl Compatible Regular Expression
            (PCRE)](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions)
            that filters the results.
          in: query
          name: regex
          required: false
          schema:
            example: user
            type: string
        - description: >-
            Whether to exclude the cPanel account's main account from the
            results.

            * `1` — Exclude the main account.

            * `0` — Include the main account.
          in: query
          name: skip_main
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_pops
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object of data for an email address on the cPanel
                          account.
                        items:
                          properties:
                            email:
                              description: >-
                                An email address.

                                * A valid email address on the cPanel account.

                                * The cPanel account username, for the main
                                account.
                              example: user@example.com
                              oneOf:
                                - format: email
                                  type: string
                                - format: username
                                  type: string
                            login:
                              description: |-
                                The email account login.
                                * A valid email address on the cPanel account.
                                * `Main Account`, for the main account.
                              example: user@example.com
                              oneOf:
                                - format: email
                                  type: string
                                - enum:
                                    - Main Account
                                  type: string
                            suspended_incoming:
                              description: >-
                                Whether incoming email for the email account is
                                suspended.

                                * `1` - Suspended.

                                * `0` - Not suspended.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            suspended_login:
                              description: >-
                                Whether logins for the email account are
                                suspended.

                                * `1` - Suspended.

                                * `0` - Not suspended.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email accounts
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_pops
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_pops
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_pops.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_pops.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_pops/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_pops.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_pops.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_pops'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_pops_with_disk:
    get:
      description: >-
        This function lists the cPanel account's email accounts with disk
        information.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_pops_with_disk
      parameters:
        - description: >-
            A domain name to filter the results by. If you do **not** use this
            parameter, the function returns **all** of the cPanel account's
            email addresses.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The cPanel user account to query. If you do **not** use this
            parameter, the function returns the email addresses for **all**
            cPanel accounts that the user owns.


            **Note:**

             To retrieve information for a single email address, add the domain parameter. For example, `email=user&domain=example.com` will return information for the email address `user@example.com`.
          in: query
          name: email
          required: false
          schema:
            example: user
            format: username
            type: string
        - description: >-
            Whether to display restriction status for each of the email
            addresses.

            * `1` — Display.

            * `0` — Do **not** display.
          in: query
          name: get_restrictions
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            An image to display for email addresses with an unlimited quota. If
            you specify an `infinityimg` value, the function returns HTML code
            to display that image as the `diskquota` parameter's value.
          in: query
          name: infinityimg
          required: false
          schema:
            example: images/myimg.jpg
            type: string
        - description: >-
            Whether to return the `∞` character for email addresses with an
            unlimited quota.

            * `1` — Return the `∞` character for unlimited `diskquota` values.

            * `0` — Return the string `unlimited` for unlimited `diskquota`
            values.


            **Note:**

             If you specify `1` for this parameter **and** the `infinityimg` parameter, the function ignores **this** parameter and returns HTML code for unlimited `diskquota` values.
          in: query
          name: infinitylang
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The maximum number of email addresses to return. If you do not use
            this parameter, the function returns an unlimited number of email
            addresses.
          in: query
          name: maxaccounts
          required: false
          schema:
            default: unlimited
            example: 500
            minimum: 1
            type: integer
        - description: |-
            Whether to skip the collection of disk usage information.
            * `1` — Do **not** collect.
            * `0` — Collect.
          in: query
          name: no_disk
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            Whether to skip email database validation.
            * `1` — Skip validation.
            * `0` — Perform the validation.
          in: query
          name: no_validate
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            A [Perl Compatible Regular Expression
            (PCRE)](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions)
            that filters the results. For example, `/^[a-z0-9_-]{6,18}$/`
            matches the local portion of an email address, if it contains
            between six and 18 characters.
          in: query
          name: regex
          required: false
          schema:
            default: An empty string
            example: /^[a-z0-9_-]{6,18}$/
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_pops_with_disk
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing data for each email
                          address.
                        items:
                          properties:
                            _diskquota:
                              description: >-
                                The disk quota.

                                * A positive value that represents the disk
                                quota, in bytes.

                                * `0` - The account possesses an unlimited disk
                                quota.
                              example: 0
                              minimum: 0
                              type: integer
                            _diskused:
                              description: >-
                                The disk space that the email account uses.

                                * A positive value that represents the used disk
                                space, in bytes.

                                * `0` - The account possesses an unlimited disk
                                quota.
                              example: 483
                              minimum: 0
                              type: integer
                            diskquota:
                              description: >-
                                The email account's disk quota.

                                * A positive value that represents the email
                                address's quota, in megabytes (MB).

                                * `unlimited`, `∞`, or HTML code to display an
                                infinity image - The email account has an
                                unlimited quota.


                                **Note:**

                                  The `infinityimg` and `infinitylang` parameters determine the unlimited value for this return.
                              example: unlimited
                              oneOf:
                                - minimum: 0
                                  type: integer
                                - type: string
                            diskused:
                              description: >-
                                The disk space that the email account uses.

                                * A positive floating-point value that
                                represents the used disk space, in megabytes
                                (MB).

                                * `0` - The account possesses an unlimited disk
                                quota.
                              example: 0
                              minimum: 0
                              type: integer
                            diskusedpercent:
                              description: >-
                                The percentage of disk space that the email
                                account uses.

                                * A positive value.

                                * `0` - The account has an unlimited disk quota.
                              example: 0
                              minimum: 0
                              type: integer
                            diskusedpercent20:
                              description: >-
                                The percentage of disk space that the email
                                account uses.

                                * A positive value.

                                * `0` - The account possesses an unlimited disk
                                quota.
                              example: 0
                              minimum: 0
                              type: integer
                            diskusedpercent_float:
                              description: >-
                                The floating-point value from which the function
                                derives the `diskusedpercent` return.

                                * A floating-point value.

                                * `0` - Unlimited or disabled disk quota.


                                **Note:**

                                 The `diskusedpercent_float` number can contain scientific notation values. For example, `1.20494365692139e-05`.
                              example: 0
                              minimum: 0
                              type: number
                            domain:
                              description: >-
                                The email account's domain. For example,
                                `example.com` if the email address is
                                `user@example.com`.
                              example: example.com
                              format: domain
                              type: string
                            email:
                              description: |-
                                The email address, or the string `Main Account`.
                                * A valid email address.
                                * `Main Account`
                              example: user@example.com
                              oneOf:
                                - format: email
                                  type: string
                                - enum:
                                    - Main Account
                                  type: string
                            has_suspended:
                              description: >-
                                Whether the email account possesses one of the
                                following suspension parameters:
                                `suspended_login` `suspended_incoming`
                                `suspended_outgoing` `hold_outgoing`

                                * `1` - The email account has a suspension.

                                * `0` - The email account does **not** have a
                                suspension.


                                **Note:**

                                  The function **only** returns this value if you pass the `get_restrictions=1` parameter.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            hold_outgoing:
                              description: >-
                                Whether the email account's outgoing email is
                                held in Exim's queue.

                                * `1` - Outgoing email is held in Exim's queue.

                                * `0` - Outgoing email is **not** held in Exim's
                                queue.


                                **Note:**

                                  The function **only** returns this value if you pass the `get_restrictions=1` parameter.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            humandiskquota:
                              description: >-
                                The disk quota, in human-readable format.

                                * The disk quota and the unit of measure.

                                * `None` - The account possesses an unlimited
                                disk quota.
                              example: None
                              oneOf:
                                - minimum: 0
                                  type: integer
                                - enum:
                                    - None
                                  type: string
                            humandiskused:
                              description: >-
                                The disk space that the email account uses, in
                                human-readable format.

                                * The disk space that the email account uses, a
                                non-breaking space (`\u00a0`), and the unit of
                                measure.

                                * `None` - The account possesses an unlimited
                                disk quota.
                              example: 483 bytes
                              type: string
                            login:
                              description: |-
                                The email address, or the main account username.
                                * A valid email address.
                                * The username for the main account.
                              example: user@example.com
                              oneOf:
                                - format: username
                                  type: string
                                - format: email
                                  type: string
                            mtime:
                              description: >-
                                The email account's last modification time, in
                                [Unix
                                time](https://wikipedia.org/wiki/Unix_time)
                                format.
                              example: 1415894498
                              format: unix_timestamp
                              type: integer
                            suspended_incoming:
                              description: >-
                                Whether the email account's incoming email is
                                suspended.

                                * `1` - Suspended.

                                * `0` - **Not** suspended.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            suspended_login:
                              description: >-
                                Whether the user's ability to log in to, send
                                mail from, and read their email account is
                                suspended.

                                * `1` - Suspended.

                                * `0` - **Not** suspended.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            suspended_outgoing:
                              description: >-
                                Whether the email account's outgoing email is
                                suspended.

                                * `1` - Suspended.

                                * `0` - **Not** suspended.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            txtdiskquota:
                              description: >-
                                The email account's disk quota.

                                * A positive value that represents the email
                                address's quota, in megabytes (MB).

                                * `unlimited` - The email account has an
                                unlimited quota.
                              example: unlimited
                              oneOf:
                                - minimum: 0
                                  type: integer
                                - enum:
                                    - unlimited
                                  type: string
                            user:
                              description: >-
                                The email account username. For example, `user`
                                if the email address is `user@example.com`.
                              example: user
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return email accounts with disk information
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_pops_with_disk
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_pops_with_disk
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_pops_with_disk.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_pops_with_disk.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_pops_with_disk/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_pops_with_disk.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_pops_with_disk.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_pops_with_disk'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/list_system_filter_info:
    get:
      description: >-
        This function retrieves a `.yaml.gz` file that contains system-level
        filter information.


        **Important:**

          When you disable the [*Receive Mail* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_system_filter_info
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_system_filter_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          filter_info:
                            description: >-
                              The file that contains the account's system-level
                              filter information. A `.yaml.gz` filename that
                              contains the cPanel account username.
                            example: filter_info.username.yaml.gz
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return system-level email filter file information
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              list_system_filter_info
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/list_system_filter_info
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_list_system_filter_info.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_list_system_filter_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/list_system_filter_info/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_list_system_filter_info.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_list_system_filter_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'list_system_filter_info'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/passwd_list:
    get:
      description: >-
        This function changes a mailing list's password.


        **Important:**


        When you disable the [_Receive Mail_](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: passwd_list
      parameters:
        - description: >-
            The full name (including the domain) of a Mailman mailing list on
            the cPanel account.
          in: query
          name: list
          required: true
          schema:
            example: mylist@example.com
            type: string
        - description: The new password.
          in: query
          name: password
          required: true
          schema:
            example: 12345luggage
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: passwd_list
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update mailing list password
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              passwd_list \
              list='mylist@example.com' \
              password='12345luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/passwd_list?list=mylist%40example.com&password=12345luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_passwd_list.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_passwd_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/passwd_list/,
                {
                    'list' => 'mylist@example.com',
                    'password' => '12345luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_passwd_list.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_passwd_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'passwd_list',
                array (
                    'list' => 'mylist@example.com',
                    'password' => '12345luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/passwd_pop:
    get:
      description: >-
        This function changes an email account's password.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: passwd_pop
      parameters:
        - description: The email account username or address.
          example: username@example.com
          in: query
          name: email
          required: true
          schema:
            anyOf:
              - example: username@example.com
                format: email
                type: string
              - example: username
                format: username
                type: string
        - description: The email account password.
          in: query
          name: password
          required: true
          schema:
            example: 12345luggage
            type: string
        - description: The email account's domain.
          in: query
          name: domain
          required: false
          schema:
            default: the cPanel account's main domain
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: passwd_pop
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update email account password
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              passwd_pop \
              email='username@example.com' \
              password='12345luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/passwd_pop?email=username%40example.com&password=12345luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_passwd_pop.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_passwd_pop.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/passwd_pop/,
                {
                    'email' => 'username@example.com',
                    'password' => '12345luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_passwd_pop.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_passwd_pop.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'passwd_pop',
                array (
                    'email' => 'username@example.com',
                    'password' => '12345luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/release_outgoing:
    get:
      description: >-
        This function sends all of the outgoing mail from Exim's queue for an
        email account.


        **Note:**


        To set Exim to queue all outgoing mail for an email account, use the
        UAPI `Email::hold_outgoing` function.
      operationId: release_outgoing
      parameters:
        - description: The email account's username.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: release_outgoing
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Start email account outgoing mail
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              release_outgoing \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/release_outgoing?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_release_outgoing.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_release_outgoing.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/release_outgoing/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_release_outgoing.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_release_outgoing.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'release_outgoing',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Email/remove_mailman_delegates:
    get:
      description: >-
        This function removes an account's mailing list administrative
        privileges.
      operationId: remove_mailman_delegates
      parameters:
        - description: list of the administrators to remove.
          in: query
          name: delegates
          required: true
          schema:
            example: user@example.com,admin@example.com
            type: string
        - description: The mailing list.
          in: query
          name: list
          required: true
          schema:
            example: mylist
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_mailman_delegates
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          delegates:
                            description: >-
                              An array of the mailing list's administrators. One
                              or more email addresses.
                            items:
                              example: secondadmin@example.com
                              type: string
                            type: array
                          metadata:
                            properties:
                              transformed: {}
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove account mailing list admin privileges
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              remove_mailman_delegates \
              list='mylist' \
              delegates='user@example.com,admin@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/remove_mailman_delegates?list=mylist&delegates=user%40example.com%2cadmin%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_remove_mailman_delegates.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_remove_mailman_delegates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/remove_mailman_delegates/,
                {
                    'list' => 'mylist',
                    'delegates' => 'user@example.com,admin@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_remove_mailman_delegates.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_remove_mailman_delegates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'remove_mailman_delegates',
                array (
                    'list' => 'mylist',
                    'delegates' => 'user@example.com,admin@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/reorder_filters:
    get:
      description: "This function modifies the filter order for an email address. For more information about Exim filters, read\_[Exim's documentation](http://www.exim.org/exim-html-3.30/doc/html/filter.html).\n\n**Important:**\n\nWhen you disable the [_Receive Mail_ role](https://go.cpanel.net/serverroles), the system **disables** this function."
      operationId: reorder_filters
      parameters:
        - description: >-
            A mail filter name.


            For each mail filter to reorder, supply a `filter*` parameter, where
            `*` is a number that represents the filter's order.


            For example, to set `coffee` as the first email filter and
            `cheesecloth` as the second, set `coffee` as the `filter1`
            parameter's value, and `cheesecloth` as the value for the `filter2`
            parameter.
          in: query
          name: filter*
          required: true
          schema:
            example: coffee
            type: string
        - description: The email address.
          in: query
          name: mailbox
          required: true
          schema:
            example: user@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: reorder_filters
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        enum:
                          - null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update email address's email filter order
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              reorder_filters \
              mailbox='user@example.com' \
              filter*='coffee'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/reorder_filters?mailbox=user%40example.com&filter%2a=coffee
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_reorder_filters.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_reorder_filters.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/reorder_filters/,
                {
                    'mailbox' => 'user@example.com',
                    'filter*' => 'coffee',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_reorder_filters.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_reorder_filters.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'reorder_filters',
                array (
                    'mailbox' => 'user@example.com',
                    'filter*' => 'coffee',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/set_always_accept:
    get:
      description: >-
        This function sets the Mail Exchanger (MX) type.


        **Note:**

          This function **only** affects the cPanel configuration. You **must** configure the mail exchanger's DNS entry separately.

        **Important:**


        When you disable the [DNS
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function.
      operationId: set_always_accept
      parameters:
        - description: The mail exchanger's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The mail exchanger type.

            * `auto` — Allow cPanel to determine the appropriate role.

            * `local` — Always accept the domain's mail.

            * `secondary` — Accept mail until a higher priority mail server is
            available.

            * `remote` — Do **not** accept mail.


            **Note:**


            This parameter is redundant with the `mxcheck` parameter. Do **not**
            enter the `mxcheck` and `alwaysaccept`

            parameters at the same time. [Undefined
            behavior](https://en.wikipedia.org/wiki/Undefined_behavior) may
            occur if this

            happens.
          in: query
          name: alwaysaccept
          required: false
          schema:
            default: auto
            enum:
              - auto
              - local
              - secondary
              - remote
            example: auto
            type: string
        - description: >-
            The mail exchanger type.

            * `auto` — Allow cPanel to determine the appropriate role.

            * `local` — Always accept the domain's mail.

            * `secondary` — Accept mail until a higher priority mail server is
            available.

            * `remote` — Do **not** accept mail.


            **Note:**


            This parameter is redundant with the `alwaysaccept` parameter. Do
            **not** enter the `mxcheck` and `alwaysaccept`

            parameters at the same time. [Undefined
            behavior](https://en.wikipedia.org/wiki/Undefined_behavior) may
            occur if this

            happens.
          in: query
          name: mxcheck
          required: false
          schema:
            default: auto
            enum:
              - auto
              - local
              - secondary
              - remote
            example: auto
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_always_accept
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          checkmx:
                            description: An object containing the mail exchanger's data.
                            properties:
                              changed:
                                description: |-
                                  Whether a change occurred during the function.
                                  * `1` — Change occurred.
                                  * `0` — **No** change.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                              detected:
                                description: >-
                                  The mail exchanger type.

                                  * `auto` — Allow cPanel to determine the
                                  appropriate role.

                                  * `local` — Always accept the domain's mail.

                                  * `secondary` — Accept mail until a higher
                                  priority mail server is available.

                                  * `remote` — Do **not** accept mail.
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              isprimary:
                                description: >-
                                  Whether the mail exchanger is the primary mail
                                  exchanger.

                                  * `1` —  Primary.

                                  * `0` — **Not** primary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              issecondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` — Secondary.

                                  * `0` — **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              local:
                                description: >-
                                  Whether the mail exchanger is a local
                                  exchanger.

                                  * `1` — Local.

                                  * `0` — **Not** local.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              mxcheck:
                                description: |-
                                  The mail exchanger type.
                                    * `auto` — Allow cPanel to determine the appropriate role.
                                    * `local` — Always accept the domain's mail.
                                    * `secondary` — Accept mail until a higher priority mail server is available.
                                    * `remote` — Do **not** accept mail.
                                enum:
                                  - auto
                                  - local
                                  - secondary
                                  - remote
                                example: auto
                                type: string
                              remote:
                                description: >-
                                  Whether the mail exchanger is a remote
                                  exchanger.

                                  * `1` — Remote.

                                  * `0` — **Not** remote.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              secondary:
                                description: >-
                                  Whether the mail exchanger is a secondary
                                  exchanger.

                                  * `1` — Secondary.

                                  * `0` — **Not** secondary.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              warnings:
                                description: >-
                                  An array of warning messages, if any exist.
                                  One or more warning messages.
                                items:
                                  example: >-
                                    Auto Detect of MX configuration not possible
                                    due to non-resolving MX entries. Defaulting
                                    to last known setting: local.
                                  type: string
                                type: array
                            type: object
                          detected:
                            description: |-
                              The mail exchanger type.
                                * `auto` — Allow cPanel to determine the appropriate role.
                                * `local` — Always accept the domain's mail.
                                * `secondary` — Accept mail until a higher priority mail server is available.
                                * `remote` — Do **not** accept mail.
                            example: auto
                            type: string
                          local:
                            description: |-
                              Whether the mail exchanger is a local exchanger.
                              * `1` — Local.
                              * `0` — **Not** local.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          mxcheck:
                            description: |-
                              The mail exchanger type.
                                * `auto` — Allow cPanel to determine the appropriate role.
                                * `local` — Always accept the domain's mail.
                                * `secondary` — Accept mail until a higher priority mail server is available.
                                * `remote` — Do **not** accept mail.
                            example: auto
                            type: string
                          remote:
                            description: |-
                              Whether the mail exchanger is a remote exchanger.
                              * `1` — Remote.
                              * `0` — **Not** remote.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          results:
                            description: |-
                              A message of success or a reason for failure.
                              * A message of success that includes the new type.
                              * A string that describes an error.
                            example: 'Set Always Accept Status to: local'
                            type: string
                          secondary:
                            description: >-
                              Whether the mail exchanger is a secondary
                              exchanger.

                              * `1` — Secondary.

                              * `0` — **Not** secondary.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          status:
                            description: |-
                              Whether the function succeeded.
                              * `1` — Success.
                              * `0` — Failure.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          statusmsg:
                            description: |-
                              A message of success or a reason for failure.
                              * A message of success that includes the new type.
                              * A string that describes an error.
                            example: 'Set Always Accept Status to: local'
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update Mail Exchanger type
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              set_always_accept \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/set_always_accept?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_set_always_accept.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_set_always_accept.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/set_always_accept/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_set_always_accept.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_set_always_accept.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'set_always_accept',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/set_default_address:
    get:
      description: |-
        This function configures a default (catchall) email address.

        **Important**:

          When you disable the [Mail Receive role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: set_default_address
      parameters:
        - description: >-
            The method to use to handle unroutable mail.

            * `fwd` — Forward messages to the `fwdemail` parameter’s address.

            * `fail` — Bounce messages back to the sender, and include the
            `failmsgs` parameter’s failure message.

            * `blackhole` — Send messages to the `/dev/null/` directory. This
            method does **not** generate a failure notice.

            * `pipe` — Pipe mail to the `pipefwd` parameter’s application. This
            parameter requires the [File Storage
            role](https://go.cpanel.net/serverroles).
          in: query
          name: fwdopt
          required: true
          schema:
            enum:
              - fwd
              - fail
              - blackhole
              - pipe
            example: fwd
            type: string
        - description: |-
            The domain whose default email behavior you want to configure.

            **Note**:

              This parameter defaults to the cPanel account’s main domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: |-
            The failure message for the message’s sender.

            **Note**:

             Use this parameter if you used the `fail` method for the `fwdopt` parameter.
          in: query
          name: failmsgs
          required: false
          schema:
            default: No such person at this address
            example: >-
              Failure echos loud. That address does not exist. Softly I regret.
              - an email failure haiku
            type: string
        - description: |-
            The email address to which the system forwards messages.

            **Note**:

             Use this parameter if you used the `fwd` method for the `fwdopt` parameter.
          in: query
          name: fwdemail
          required: false
          schema:
            example: admin@example.com
            format: email
            type: string
        - description: |-
            The application to which the system pipes messages.

            **Note**:

              Use this parameter if you used the `pipe` method for the `fwdopt` parameter.

            **Important**:

              This parameter requires the [File Storage role](https://go.cpanel.net/serverroles).
          in: query
          name: pipefwd
          required: false
          schema:
            example: mailscript.pl
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_default_address
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of hashes of forwarder information. This
                          array of hashes includes the domain and dest returns.
                        items:
                          properties:
                            dest:
                              description: >-
                                The destination to which the system sends
                                unroutable mail.

                                - An email address  The system forwards mail to
                                this address.

                                - :fail:  The system bounces mail back to the
                                sender, and sends a failure message.

                                - :blackhole:  The system deletes mail without a
                                failure message.

                                - The path to an application  The system pipes
                                mail to this application.
                              example: admin@example.com
                              type: string
                            domain:
                              description: The domain. A valid domain on the account.
                              example: example.com
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create default email address
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              set_default_address \
              fwdopt='fwd'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/set_default_address?fwdopt=fwd
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_set_default_address.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_set_default_address.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/set_default_address/,
                {
                    'fwdopt' => 'fwd',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_set_default_address.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_set_default_address.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'set_default_address',
                array (
                    'fwdopt' => 'fwd',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/set_list_privacy_options:
    get:
      description: >-
        This function modifies a Mailman mailing list's privacy options.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: set_list_privacy_options
      parameters:
        - description: |-
            Whether the Mailman directory page displays the list.
            * `1` - Display.
            * `0` - Does **not** display.
          in: query
          name: advertised
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether the mailing list archive is private.
            * `1` - Private.
            * `0` - Public.
          in: query
          name: archive_private
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: The mailing list name.
          in: query
          name: list
          required: true
          schema:
            example: mylist
            type: string
        - description: >-
            The level of control that the mailing list administrator has over
            new subscribers.

            * `1` - Anyone can subscribe. The system sends a confirmation email.

            * `2` - The administrator **must** approve subscriptions. The system
            does **not** send a confirmation email.

            * `3` - The administrator **must** approve subscriptions. The system
            sends a confirmation email.
          in: query
          name: subscribe_policy
          required: true
          schema:
            enum:
              - 1
              - 2
              - 3
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_list_privacy_options
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update mailing list privacy options
      tags:
        - Email
        - Mailing Lists
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              set_list_privacy_options \
              list='mylist' \
              advertised='1' \
              archive_private='1' \
              subscribe_policy='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/set_list_privacy_options?list=mylist&advertised=1&archive_private=1&subscribe_policy=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_set_list_privacy_options.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_set_list_privacy_options.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/set_list_privacy_options/,
                {
                    'list' => 'mylist',
                    'advertised' => '1',
                    'archive_private' => '1',
                    'subscribe_policy' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_set_list_privacy_options.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_set_list_privacy_options.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'set_list_privacy_options',
                array (
                    'list' => 'mylist',
                    'advertised' => '1',
                    'archive_private' => '1',
                    'subscribe_policy' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/set_manual_mx_redirects:
    get:
      description: >-
        This function lets you create a manual Exim mail exchanger (MX) redirect
        for a domain.

        An MX redirection lets you bypass the domain's MX lookup via the Domain
        Name System (DNS).

        This function adds the manual redirect entries to the `/etc/manualmx`
        file.


        **Note:**

          To remove a domain's manual MX redirection, use the UAPI Email `unset_manual_mx_redirect` function.
      operationId: set_manual_mx_redirects
      parameters:
        - description: >-
            The domain for which to add a manual MX redirect entry.


            **Note:**


            * To add multiple domain entries, increment the parameter. For
            example, use the `domain`, `domain-1`, and `domain-2` parameters.

            * For multiple domains, you **must** include its corresponding
            `mx_host` value.
          in: query
          name: domain
          required: true
          examples:
            single:
              summary: Add a single manual MX redirect entry.
              value: '''example.com'''
            multiple:
              summary: Add multiple manual MX redirect entries.
              value: example.com&domain-1=example1.com&domain-2=example2.com
          schema:
            example: example.com
            type: string
            format: domain
        - description: >-
            The domain, IPv4, or IPv6 address to redirect the domain value's
            emails to.


            **Note:**

             * To add multiple MX hosts, increment the parameter. For example, use the `mx_host`, `mx_host-1`, and `mx_host-2` parameters.
             * For multiple MX hosts, you **must** include its corresponding `domain` value.
          in: query
          name: mx_host
          required: true
          examples:
            single:
              summary: Add a single manual MX host.
              value: '''mailhostexample'''
            multiple:
              summary: Add multiple manual MX hosts.
              value: >-
                mailhostexample&mx_host-1=mailhostexample&mx_host-2=mailhostexample
          schema:
            oneOf:
              - type: string
                description: A domain name.
                format: domain
              - type: string
                description: An IPv4 address.
                format: ipv4
              - type: string
                description: An IPv6 address.
                format: ipv6
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_manual_mx_redirects
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          A list of domains and the replaced manual MX redirect
                          entries.
                        properties:
                          additionalProperties:
                            description: >-
                              The domain for which the function replaced the
                              manual MX redirect entry.


                              * null — The domain did not have an existing
                              manual MX redirect entry.


                              **Note:**


                              This return's name is the `domain` parameter's
                              value.
                            example: mailhostexample.com
                            type: string
                            nullable: true
                        type: object
                        example:
                          example.com: mailhostexample.com
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add manual MX redirection
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username Email
            set_manual_mx_redirects domain='example.com'
            mx_host='mailhostexample.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/set_manual_mx_redirects?domain=example.com&mx_host=mailhostexample.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_set_manual_mx_redirects.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_set_manual_mx_redirects.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/set_manual_mx_redirects/,
                {
                    'domain' => 'example.com',
                    'mx_host' => 'mailhostexample.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_set_manual_mx_redirects.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_set_manual_mx_redirects.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'set_manual_mx_redirects',
                array (
                    'domain' => 'example.com',
                    'mx_host' => 'mailhostexample.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 96
  /Email/stats_db_status:
    get:
      description: "This function returns the status of the eximstats\_SQLite\_Database.\n\n**Important:**\n\nWhen you disable the [Receive Mail role](https://go.cpanel.net/serverroles), the system **disables** this function."
      operationId: stats_db_status
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: stats_db_status
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The disk space that the email account uses.

                          * `active` - The database is available and up-to-date.

                          * `importing` - The database is available, but a data
                          import is currently in progress.

                          * `upcp` - The database is unavailable because cPanel
                          & WHM is updating.


                          **Note:**


                          If the `eximstats` database is running a cPanel & WHM
                          update, but the database is available, this function
                          will return `active`, **not** `upcp`.
                        enum:
                          - active
                          - importing
                          - upcp
                        example: active
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return eximstats SQLite database status
      tags:
        - Email
        - Email Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              stats_db_status
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/stats_db_status
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_stats_db_status.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_stats_db_status.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/stats_db_status/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_stats_db_status.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_stats_db_status.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'stats_db_status'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /Email/store_filter:
    get:
      description: "This function creates a new email filter. For more information about Exim filters, read\_[Exim's documentation](http://www.exim.org/exim-html-3.30/doc/html/filter.html).\n\n**Important:**\n\nWhen you disable the [*Receive Mail* role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles), the system **disables** this function.\n\n### Create multiple rules\n\nYou may create up to 4,096 separate sets of conditions in one filter. To do this, append numbers to the parameter names.\n\nTo create a filter with two sets of actions and conditions, use the following parameters:\n  * Assign the information for the first filter rule to the `action1`, `dest1`, `match1`, `opt1`, `part1`, and `val1` parameters.\n  * Assign the information for the second filter rule to the `action2`, `dest2`, `match2`, `opt2`, `part2`, and `val2` parameters.\n\nTo create a filter that uses one set of actions but two sets of conditions, use the following parameters:\n  * Assign the actions to the `action1` and `dest1` parameters.\n  * Assign the first set of conditions to the `match1`, `opt1`, `part1`, and `val1` parameters.\n  * Assign the second set of conditions to the `match2`, `opt2`, `part2`, and `val2` parameters."
      operationId: store_filter
      parameters:
        - description: >-
            The filter's action.


            * `deliver` - Deliver the message to the `dest*` address.

            * `fail` - Force a delivery failure.

            * `finish` - Stop processing the message.

            * `save` - Save the message to the `dest*` file.

            * `pipe` - Pipe the message to the `dest*` application.


            **Important:**


            * You **must** increment each action. For example, pass the first
            action as `action1` and the second action as `action2`.

            * This value **requires** the `FileStorage` role. For more
            information, read our [How to Use Server
            Profiles](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles)
            documentation.
          examples:
            multiple:
              summary: Use multiple filter actions.
              value: action1=deliver action2=save
            single:
              summary: Use a single filter action.
              value: deliver
          in: query
          name: action*
          required: true
          schema:
            anyOf:
              - enum:
                  - deliver
                  - fail
                  - finish
                  - save
                  - pipe
                type: string
        - description: The filter name.
          in: query
          name: filtername
          required: true
          schema:
            example: coffee
            type: string
        - description: >-
            The filter's [match
            type](http://www.exim.org/exim-html-current/doc/html/spec_html/filter_ch-exim_filter_files.html).

            * If the `val*` parameter is a string, use a string operator.

            * If the `val*` parameter is an integer, use a numeric operator.


            String operators:


            * `is`

            * `matches`

            * `contains`

            * `does not contain`

            * `begins`

            * `does not begin`

            * `ends`

            * `does not end`

            * `does not match`


            Numeric operators:


            * `is above`

            * `is not above`

            * `is below`

            * `is not below`


            **Important:**

             You **must** increment each match type. For example, pass the first match type as `match1` and the second match type as `match2`.
          examples:
            multiple:
              summary: Use multiple match types.
              value: match1=contains match2=matches
            single:
              summary: Use a single match type.
              value: contains
          in: query
          name: match*
          required: true
          schema:
            anyOf:
              - enum:
                  - is
                  - matches
                  - contains
                  - does not contain
                  - begins
                  - does not begin
                  - ends
                  - does not end
                  - does not match
                  - is above
                  - is not above
                  - is below
                  - is not below
                example: matches
                type: string
        - description: >-
            The email section to query.

             * `$h_x-Spam-Bar:` - Match against the message's spam score value, measured in plus(`+`) characters.
             * `$h_x-Spam-Score:` - Match against the message's spam score value.
             * `$h_X-Spam-Status:` - Match against whether the system detected the message as spam.
             * `$h_List-Id:` - Match against the message's `List-ID` header value.
             * `$header_from:` - Match against the `From:` section.
             * `$header_subject:` - Match against the `Subject:` section.
             * `$header_to:` - Match against the `To:` section.
             * `$reply_address:` - Match against the `Reply To:` section.
             * `$message_body:` - Match against the message's body.
             * `$message_headers:` - Match against the message's headers.
             * `foranyaddress $h_to:, $h_cc:` - Match against all message recipients.
             * `not delivered` - Match if the message is not queued for delivery.
             * `error_message` - Match if the incoming message is bounced.

            **Important:**


            You **must** increment each section. For example, pass the first
            section as `part1` and the second section as `part2`.


            **Note:**


            Generally, the recipient does **not** receive the `BCC` field in an
            email's header. For this reason you **cannot** use the `BCC` field
            in a filter.
          examples:
            multiple:
              summary: Query multiple email sections.
              value: part1=$header_from part2=$message_body
            single:
              summary: Query a single email section.
              value: $header_from
          in: query
          name: part*
          required: true
          schema:
            anyOf:
              - enum:
                  - $h_x-Spam-Bar
                  - $h_x-Spam-Score
                  - $h_X-Spam-Status
                  - $h_List-id
                  - $header_from
                  - $header_subject
                  - $header_to
                  - $reply_address
                  - $message_body
                  - $message_headers
                  - $h_to, $h_cc
                  - not delivered
                  - error_message
                type: string
        - description: >-
            The value to match.


            **Important:**


            You **must** increment each value. For example, pass the first value
            as `val1` and the second value as `val2`.
          examples:
            multiple:
              summary: Match multiple values.
              value: val1=coconut val2=12
            single:
              summary: Match a single value.
              value: coconut
          in: query
          name: val*
          required: true
          schema:
            anyOf:
              - type: string
              - type: integer
        - description: >-
            The email address, for user-level filters. If you do not use this
            parameter, the function creates an account-level filter.
          in: query
          name: account
          required: false
          schema:
            example: user@example.com
            format: email
            type: string
        - description: |-
            The destination for filtered mail.

            **Important:**

             * This parameter is **required** if the action value is `deliver`, `save`, or `pipe`.
             * You **must** increment each destination. For example, pass the first destination as `dest1` and the second destination as `dest2`.
          examples:
            multiple:
              summary: Use multiple destinations for filtered mail.
              value: dest1=user@example.com dest2=user2@example.com
            single:
              summary: Use a single destination for filtered mail.
              value: user@example.com
          in: query
          name: dest*
          required: false
          schema:
            anyOf:
              - description: A valid email address.
                example: cheesecloth@example.com
                format: email
                type: string
              - description: A valid file or application path.
                example: /path/to/thing
                format: path
                type: string
            default: ''
        - description: >-
            The name of an existing filter, to rename it. If you do not use this
            parameter, the function creates a new filter.
          in: query
          name: oldfiltername
          required: false
          schema:
            example: pool
            type: string
        - description: >-
            The connection between multiple conditions.


            **Important:**


            You **must** increment each connection. For example, pass the first
            connection as `opt1` and the second connection as `opt2`.
          examples:
            multiple:
              summary: Use multiple connections between conditions.
              value: opt1=and opt2=and
            single:
              summary: Use a single connection between conditions.
              value: and
          in: query
          name: opt*
          required: false
          schema:
            anyOf:
              - enum:
                  - and
                  - or
                type: string
            default: and
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: store_filter
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          account:
                            description: >-
                              The filter's email address. The function only
                              returns this value if it created a user-level
                              filter.
                            example: user@example.com
                            format: email
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create email filter
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              store_filter \
              filtername='coffee' \
              action*='deliver' \
              match*='contains' \
              part*='$header_from' \
              val*='coconut'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/store_filter?filtername=coffee&action%2a=deliver&match%2a=contains&part%2a=%24header_from&val%2a=coconut
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_store_filter.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_store_filter.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/store_filter/,
                {
                    'filtername' => 'coffee',
                    'action*' => 'deliver',
                    'match*' => 'contains',
                    'part*' => '$header_from',
                    'val*' => 'coconut',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_store_filter.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_store_filter.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'store_filter',
                array (
                    'filtername' => 'coffee',
                    'action*' => 'deliver',
                    'match*' => 'contains',
                    'part*' => '$header_from',
                    'val*' => 'coconut',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/suspend_incoming:
    get:
      description: >-
        This function suspends incoming email for an account. The system will
        reject incoming email while the account is suspended.


        **Notes:**


        * The user can still log in to the email account. To suspend a user's
        ability to log in to, send mail from, and read their account, use the
        UAPI `Email::suspend_login` function.

        * Use the UAPI `Email::unsuspend_incoming` function to allow the account
        to receive email.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: suspend_incoming
      parameters:
        - description: The email user's account name.
          in: query
          name: email
          required: false
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: suspend_incoming
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Suspend email account incoming (SMTP) mail
      tags:
        - Email
        - Email Suspensions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              suspend_incoming
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/suspend_incoming
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_suspend_incoming.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_suspend_incoming.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/suspend_incoming/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_suspend_incoming.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_suspend_incoming.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'suspend_incoming'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Email/suspend_login:
    get:
      description: >-
        This function suspends a user's ability to log in to their email
        account. This function immediately suspends the user's login credentials
        and prevents future authenticated connections to the email account.


        **Notes:**


        * When you suspend an account, the user's account still receives email.

        * To suspend incoming email for an account, use the UAPI
        `Email::suspend_incoming` function.

        * To remove the login suspension for an account, use the UAPI
        `Email::unsuspend_login` function.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: suspend_login
      parameters:
        - description: The email user's account name.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: suspend_login
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Suspend email account login
      tags:
        - Email
        - Email Suspensions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              suspend_login \
              email='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/suspend_login?email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_suspend_login.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_suspend_login.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/suspend_login/,
                {
                    'email' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_suspend_login.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_suspend_login.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'suspend_login',
                array (
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Email/suspend_outgoing:
    get:
      description: "This function rejects outgoing mail for a suspended email account. This function does\_**not**\_disable a user's login credentials or access permissions to their email account.\n\n**Notes:**\n\n* To suspend a user's login credentials and prevent authenticated connections to the email account, use the UAPI `Email::suspend_login` function.\n* To allow an email account to send mail, use the UAPI `Email::unsuspend_outgoing` function.\n* To hold outgoing mail in Exim's queue, use the UAPI `Email::hold_outgoing` function.\n\n**Important:**\n\nWhen you disable the [Send Mail role](https://go.cpanel.net/serverroles), the system **disables** this function."
      operationId: suspend_outgoing
      parameters:
        - description: The email account's username.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: suspend_outgoing
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the function succeeded.
                          * `1` — The function succeeded.
                          * `0` — The function failed.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Suspend email account outgoing mail
      tags:
        - Email
        - Email Suspensions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              suspend_outgoing \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/suspend_outgoing?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_suspend_outgoing.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_suspend_outgoing.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/suspend_outgoing/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_suspend_outgoing.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_suspend_outgoing.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'suspend_outgoing',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Email/terminate_mailbox_sessions:
    get:
      description: >-
        This function terminates all IMAP and POP3 connections for a cPanel
        account.


        **Note:**


        This function ends connections for every email address, which includes
        the [default address](https://go.cpanel.net/cpaneldocsDefaultAddress).
      operationId: email-terminate_mailbox_sessions
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  metadata:
                    properties:
                      command:
                        description: The method name called.
                        example: terminate_mailbox_sessions
                        type: string
                      reason:
                        description: >-
                          The reason the API function failed when the
                          `metadata.result` field is `0`. This field may display
                          a success message when a function succeeds.
                        example: OK
                        type: string
                      result:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `reason` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      version:
                        description: The version of the API function.
                        example: 1
                        type: integer
                type: object
          description: HTTP Request was successful.
      summary: Stop cPanel account IMAP and POP3 connections
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              terminate_mailbox_sessions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/terminate_mailbox_sessions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_terminate_mailbox_sessions.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_terminate_mailbox_sessions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/terminate_mailbox_sessions/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_terminate_mailbox_sessions.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_terminate_mailbox_sessions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'terminate_mailbox_sessions'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 96
  /Email/trace_delivery:
    get:
      description: This function traces the email delivery route to an email account.
      operationId: trace_delivery
      parameters:
        - description: The email address to which to trace a message delivery path.
          in: query
          name: recipient
          required: true
          schema:
            example: username@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: trace_delivery
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        allOf:
                          - $ref: '#/components/schemas/trace_deliveryResponseBase'
                          - $ref: '#/components/schemas/trace_deliveryType'
                        example:
                          address: username@example.com
                          destinations:
                            - address: username@example.com
                              aliasfile: /etc/valiases/example.com
                              destinations:
                                - mailbox: username@example.com
                                  type: local_delivery
                              type: routed
                          type: routed
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: |-
                          List of warnings generated by the API. Warnings
                           describe non-critical failures or other problematic conditions
                           noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Run email delivery route trace
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              trace_delivery \
              recipient='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/trace_delivery?recipient=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_trace_delivery.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_trace_delivery.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/trace_delivery/,
                {
                    'recipient' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_trace_delivery.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_trace_delivery.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'trace_delivery',
                array (
                    'recipient' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Email/trace_filter:
    get:
      description: >-
        This function tests mail filters. The function **only** tests filters
        for the cPanel account's main domain, and only tests against the
        message's body. For more information about Exim filters, read [Exim's
        documentation](http://www.exim.org/exim-html-3.30/doc/html/filter.html).


        **Note:**


        If the domain or account does not contain a filter file, this function
        will fail.


        **Important:**


        When you disable the [Receive Mail](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: trace_filter
      parameters:
        - description: >-
            The string to test. The function uses this string as the body of an
            email message, to check whether filters would match the string.
          in: query
          name: msg
          required: true
          schema:
            example: Test
            type: string
        - description: >-
            The email address, to test legacy cPanel filters in the filters
            directory. If you do not use this parameter, the function tests the
            main domain's filters in the `/etc/vfilters` directory.
          in: query
          name: account
          required: false
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: trace_filter
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          trace:
                            description: >-
                              A series of messages that describe the trace
                              results.


                              **Note:**


                              This output may contain HTML.
                            example: >-
                              Warning: no message headers read\nReturn-path
                              copied from sender\nSender =
                              user@example.com\nRecipient =
                              user@example.com\nTesting Exim filter file
                              &quot;/etc/vfilters/example.com&quot;\n\nFiltering
                              did not set up a significant delivery.\n<b>Normal
                              delivery will occur.\n</b>
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Run test for main domain email filters
      tags:
        - Email
        - Email Filtering
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              trace_filter \
              msg='Test'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/trace_filter?msg=Test
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_trace_filter.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_trace_filter.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/trace_filter/,
                {
                    'msg' => 'Test',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_trace_filter.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_trace_filter.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'trace_filter',
                array (
                    'msg' => 'Test',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Email/unset_manual_mx_redirects:
    get:
      description: >-
        This function lets you create a manual Exim mail exchanger (MX) redirect
        for a domain.

        An MX redirection lets you bypass the domain's MX lookup via the Domain
        Name System (DNS).

        This function adds the manual redirect entries to the `/etc/manualmx`
        file.


        **Note:**

          To remove a domain's manual MX redirection, use the UAPI Email `unset_manual_mx_redirect` function.
      operationId: unset_manual_mx_redirects
      parameters:
        - description: >-
            The domain for which to add a manual MX redirect entry.


            **Note:**


            * To add multiple domain entries, increment the parameter. For
            example, use the `domain`, `domain-1`, and `domain-2` parameters.

            * For multiple domains, you **must** include its corresponding
            `mx_host` value.
          in: query
          name: domain
          required: true
          examples:
            single:
              summary: Add a single manual MX redirect entry.
              value: '''example.com'''
            multiple:
              summary: Add multiple manual MX redirect entries.
              value: example.com&domain-1=example1.com&domain-2=example2.com
          schema:
            example: example.com
            type: string
            format: domain
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unset_manual_mx_redirects
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          A list of domains and the removed manual MX redirect
                          entries.
                        properties:
                          additionalProperties:
                            description: >-
                              The domain for which the function removed the
                              manual MX redirect entry.


                              * null — The domain did not have a manual MX
                              redirect entry.


                              **Note:**


                              This return's name is the `domain` parameter's
                              value.
                            example: mailhostexample.com
                            type: string
                            nullable: true
                        type: object
                        example:
                          example.com: mailhostexample.com
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove manual MX redirection
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username Email
            unset_manual_mx_redirects domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/unset_manual_mx_redirects?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_unset_manual_mx_redirects.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_unset_manual_mx_redirects.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/unset_manual_mx_redirects/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_unset_manual_mx_redirects.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_unset_manual_mx_redirects.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'unset_manual_mx_redirects',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 96
  /Email/unsuspend_incoming:
    get:
      description: >-
        This function unsuspends incoming email for an email account.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: unsuspend_incoming
      parameters:
        - description: The email user's account name.
          in: query
          name: email
          required: false
          schema:
            example: user@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unsuspend_incoming
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the function succeeded.
                          * `1` — The function succeeded.
                          * `0` — The function failed.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Unsuspend email account incoming mail
      tags:
        - Email
        - Email Suspensions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              unsuspend_incoming
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/unsuspend_incoming
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_unsuspend_incoming.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_unsuspend_incoming.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/unsuspend_incoming/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_unsuspend_incoming.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_unsuspend_incoming.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'unsuspend_incoming'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Email/unsuspend_login:
    get:
      description: >-
        This function restores a user's ability to log in to their email
        account.


        **Note:**


        * To suspend a user's ability to log in, use the UAPI
        `Email::suspend_login` function.

        * To suspend incoming email for an account, use the UAPI
        `Email::suspend_incoming` function.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: unsuspend_login
      parameters:
        - description: The email user's account name.
          in: query
          name: email
          required: false
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unsuspend_login
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Unsuspend email account login
      tags:
        - Email
        - Email Suspensions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              unsuspend_login
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/unsuspend_login
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_unsuspend_login.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_unsuspend_login.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/unsuspend_login/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_unsuspend_login.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_unsuspend_login.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'unsuspend_login'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Email/unsuspend_outgoing:
    get:
      description: >-
        This function cancels the suspension action put in place by the UAPI
        `Email::suspend_outgoing`

        function for outgoing mail for an email account.


        **Note:**


        To suspend an email account and reject all outgoing mail, use the UAPI
        `Email::suspend_outgoing` function.        
      operationId: unsuspend_outgoing
      parameters:
        - description: The email account's username.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unsuspend_outgoing
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Unsuspend email account outgoing mail
      tags:
        - Email
        - Email Suspensions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              unsuspend_outgoing \
              email='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/unsuspend_outgoing?email=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_unsuspend_outgoing.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_unsuspend_outgoing.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/unsuspend_outgoing/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_unsuspend_outgoing.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_unsuspend_outgoing.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'unsuspend_outgoing',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Email/verify_password:
    get:
      description: >-
        This function verifies the password for an email account.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: verify_password
      parameters:
        - description: The email account address.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
        - description: The email account password.
          in: query
          name: password
          required: true
          schema:
            example: 123456luggage
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: verify_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Email
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the password is valid for the email account.
                          * `1` - The password is valid.
                          * `0` - The password is **not** valid.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate email account password
      tags:
        - Email
        - Email Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Email \
              verify_password \
              email='username@example.com' \
              password='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Email/verify_password?email=username%40example.com&password=123456luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Email_verify_password.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Email_verify_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Email/,
                q/verify_password/,
                {
                    'email' => 'username@example.com',
                    'password' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Email_verify_password.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Email_verify_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Email',
                'verify_password',
                array (
                    'email' => 'username@example.com',
                    'password' => '123456luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /EmailAuth/apply_dmarc:
    get:
      description: This function applies a DMARC record to the specified domain(s)
      operationId: EmailAuth::apply_dmarc
      parameters:
        - description: >-
            The DMARC record to apply to the requested domains.


            **Note:**


            Visit the following link for more information about the DMARC record
            specification: https://dmarc.org/resources/specification/
          example: v=DMARC1;p=reject;pct=100;rua=mailto:postmaster@example.com
          in: query
          name: policy
          required: true
          schema:
            type: string
        - description: "The domain for which to apply the DMARC record.\n\n**Note:**\n\nTo enable multiple domain DMARC records, duplicate or increment the parameter. For example, to enable DMARC records for three domains, perform either of the following actions:\n\n* Use the\_`domain` parameter three times.\n* Use the\_`domain`, `domain-1`, and `domain-2`\_parameters.\n\nIf you do not include this argument, the system applies the DMARC record to all the user's domains.\n\nYou cannot use this function to edit temporary domains' DMARC records."
          examples:
            multiple:
              summary: Enable multiple domains' DMARC records.
              value: >-
                domain-1=example1.com domain-2=example2.com
                domain-3=example3.com
            multiple-alternative:
              summary: Enable multiple domains' DMARC records.
              value: domain=example1.com domain=example2.com domain=example3.com
            single:
              summary: Enable a single domain's DMARC records.
              value: example.com
          in: query
          name: domain
          required: false
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: apply_dmarc
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array that contains information about the DMARC
                          records applied to domains.
                        items:
                          properties:
                            domain:
                              description: >-
                                The domain for which the DMARC record was
                                applied.
                              example: example.com
                              format: domain
                              type: string
                            msg:
                              description: The domain's DMARC record status message.
                              example: '[ADD:TXT@_dmarc.example.com:v=DMARC1; p=reject;]'
                              type: string
                            status:
                              description: >-
                                Whether the system applied a DMARC record to the
                                domain.

                                * `1` - Applied.

                                * `0` - The system did **not** apply a DMARC
                                record.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Apply DMARC records to domains.
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              apply_dmarc \
              domain='example.com' \
              policy='v=DMARC1; p=reject;'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/apply_dmarc?domain=example.com&policy='v=DMARC1;
            p=reject;'
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_apply_dmarc.live.pl and put this code
            into that file.

            # 5) In your browser log in to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_apply_dmarc.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/apply_dmarc/,
                {
                    'domain' => 'example.com',
                    'policy' => 'v=DMARC1; p=reject;'
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html-printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_apply_dmarc.live.php and put this code
            into that file.

            // 5) In your browser log in to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_apply_dmarc.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'apply_dmarc',
                array (
                    'domain' => 'example.com',
                    'policy' => 'v=DMARC1; p=reject;'
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: '124'
  /EmailAuth/disable_dkim:
    get:
      description: >-
        This function removes the DomainKeys Identified Mail (DKIM) records on
        the DNS server for one or more domains.
      operationId: disable_dkim
      parameters:
        - description: >-
            The domain for which to remove DKIM records on the DNS server.


            **Note:**


            To remove multiple domain DKIM records, duplicate the parameter
            name. For example, use the `domain=example.com`,
            `domain=example2.com`, and `domain=example3.com` parameters.
          examples:
            multiple:
              summary: Multiple domains.
              value: domain=example.com&domain=example2.com&domain=example.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_dkim
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contain information about the
                          removal of a domain's DKIM record on the DNS server.
                        items:
                          properties:
                            domain:
                              description: >-
                                The domain for which the system removed the DKIM
                                record.
                              example: example.com
                              format: domain
                              type: string
                            msg:
                              description: Information about the removed DKIM record.
                              example: >-
                                [REMOVE:TXT@default._domainkey:v=DKIM1; k=rsa;
                                p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiLMNOpQDw5nw4NP1RsWXlfmiMzByDfOT16QCZO/xJtrPZKskZF8/sU0zWGTqKUOErlyJfoJzMDUv3/zzjGswc2nEmYqxxoQZaBkN4QaS6MvJQxysAr+sK8C248/r9zMperQdhJedUVejtpFQHJwgqpHy1tQMxY37L7sQjdxmQ5WnQ1acXiwIDAQAB\;]
                              type: string
                            status:
                              description: >-
                                Whether the system removed the domain's DKIM
                                record on the DNS server.

                                * `1` - The system removed the domain's DKIM
                                record.

                                * `0` - The system did **not** remove the
                                domain's DKIM record.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove domains' DKIM records
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              disable_dkim \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/disable_dkim?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_disable_dkim.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_disable_dkim.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/disable_dkim/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_disable_dkim.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_disable_dkim.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'disable_dkim',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/enable_dkim:
    get:
      description: >-
        This function enables DomainKeys Identified Mail (DKIM) records on the
        DNS server for one or more domains.


        **Note:**


        If a DKIM record does **not** exist on the server, this function will
        install a new DKIM record.
      operationId: enable_dkim
      parameters:
        - description: "The domain for which to enable DKIM records on the DNS server.\n\n**Note:**\n\nTo enable multiple domain DKIM records, duplicate or increment the parameter. For example, to perform this for three domains, you could:\n\n* Use the\_`domain` parameter multiple times.\n* Use the\_`domain`, `domain-1`, and `domain-2`\_parameters."
          examples:
            multiple:
              summary: Enable multiple domains' DKIM records.
              value: >-
                domain-1=example1.com domain-2=example2.com
                domain-3=example3.com
            multiple-alternative:
              summary: Enable multiple domains' DKIM records.
              value: domain=example1.com domain=example2.com domain=example3.com
            single:
              summary: Enable a single domain's DKIM records.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_dkim
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array that contains information about the enabled
                          state of a domain's DKIM records on the DNS server.
                        items:
                          properties:
                            domain:
                              description: >-
                                The domain for which the system enabled the DKIM
                                record.
                              example: example.com
                              format: domain
                              type: string
                            msg:
                              description: The domain's DKIM record status message.
                              example: '[no changes needed]'
                              type: string
                            status:
                              description: >-
                                Whether the system enabled the domain's DKIM
                                record on the DNS server.

                                * `1` - Enabled.

                                * `0` - The system did **not** enable the
                                domain's DKIM record.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable domains' DKIM records
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              enable_dkim \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/enable_dkim?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_enable_dkim.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_enable_dkim.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/enable_dkim/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_enable_dkim.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_enable_dkim.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'enable_dkim',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/ensure_dkim_keys_exist:
    get:
      description: >-
        This function confirms the validity of a DomainKeys Identified Mail
        (DKIM) key for one or more domains.


        **Notes:**


        * If an existing DKIM key does **not** meet the server's security
        requirements, the system replaces the existing DKIM key.

        * If no DKIM key exists, the system creates a new key for the domain.
      operationId: ensure_dkim_keys_exist
      parameters:
        - description: |-
            The domain for which to confirm a valid DKIM key exists.

            **Note:**

             To check the DKIM key validity for multiple domains, duplicate the parameter name. For example, use the `domain=example.com`, `domain=example2.com`, and `domain=example3.com` parameters.
          examples:
            multiple:
              summary: Multiple domains.
              value: domain=example.com&domain=example2.com&domain=example3.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: ensure_dkim_keys_exist
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contains information about
                          the domain's DKIM key validity.
                        items:
                          properties:
                            domain:
                              description: >-
                                The domain for which the system confirmed that a
                                valid DKIM key exists.
                              example: example.com
                              format: domain
                              type: string
                            msg:
                              description: The domain's DKIM key status message.
                              example: created new key
                              type: string
                            status:
                              description: >-
                                Whether the system verified that the domain's
                                DKIM key exists.

                                * `1` - The system verified the existence of the
                                domain's DKIM key.

                                * `0` - The system did **not** verify the
                                existence of the domain's DKIM key.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate domains' DKIM private keys
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              ensure_dkim_keys_exist \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/ensure_dkim_keys_exist?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_ensure_dkim_keys_exist.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_ensure_dkim_keys_exist.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/ensure_dkim_keys_exist/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_ensure_dkim_keys_exist.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_ensure_dkim_keys_exist.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'ensure_dkim_keys_exist',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/fetch_dkim_private_keys:
    get:
      description: >-
        This function returns a domain's installed DKIM private key in
        [Privacy-Enhanced Mail
        (PEM)](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) format.


        **Warning:**


        We **strongly** recommend that you protect your private key. If others
        obtain your private DKIM key, they could sign emails and impersonate you
        as a sender.
      operationId: fetch_dkim_private_keys
      parameters:
        - description: >-
            The domain for which to retrieve the installed DKIM private key.


            **Note:**


            To retrieve multiple domain DKIM keys, duplicate the parameter name.
            For example, use the `domain=example.com`, `domain=example2.com`,
            and `domain=example3.com` parameters.
          examples:
            multiple:
              summary: Multiple domains.
              value: domain=example.com&domain=example2.com&domain=example3.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_dkim_private_keys
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contains information about
                          the domain's DKIM private key.
                        items:
                          properties:
                            domain:
                              description: The queried domain.
                              example: example.com
                              format: domain
                              type: string
                            pem:
                              description: The domain's DKIM private key, in PEM format.
                              example: >
                                -----BEGIN RSA PRIVATE KEY-----

                                MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G

                                A1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2VydGlmaWNhdGUgYXV0aG9y

                                aXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdudVRMUyBjZXJ0aWZpY2F0

                                ZSBhdXRob3JpdHkwHhcNMTEwNTIzMjAzODIxWhcNMTIxMjIyMDc0MTUxWjB9MQsw

                                CQYDVQQGEwJCRTEPMA0GA1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2Vy

                                dGlmaWNhdGUgYXV0aG9yaXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdu

                                dVRMUyBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkwWTATBgcqhkjOPQIBBggqhkjOPQMB

                                BwNCAARS2I0jiuNn14Y2sSALCX3IybqiIJUvxUpj+oNfzngvj/Niyv2394BWnW4X

                                uQ4RTEiywK87WRcWMGgJB5kX/t2no0MwQTAPBgNVHRMBAf8EBTADAQH/MA8GA1Ud

                                DwEB/wQFAwMHBgAwHQYDVR0OBBYEFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqG

                                SM49BAMCA0gAMEUCIDGuwD1KPyG+hRf88MeyMQcqOFZD0TbVleF+UsAGQ4enAiEA

                                l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo==

                                -----END RSA PRIVATE KEY-----
                              format: pem-private-key
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains' DKIM private keys
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              fetch_dkim_private_keys \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/fetch_dkim_private_keys?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_fetch_dkim_private_keys.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_fetch_dkim_private_keys.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/fetch_dkim_private_keys/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_fetch_dkim_private_keys.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_fetch_dkim_private_keys.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'fetch_dkim_private_keys',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/install_dkim_private_keys:
    get:
      description: >-
        This function installs existing keys for use in a DomainKeys Identified
        Mail (DKIM) record. This is useful if you do not want the system to
        generate keys for DKIM records.


        **Note:**


        * This function does **not** update the local DNS server's records.

        * If the local DNS server is authoritative for the domain's DNS records,
        use the UAPI `EmailAuth::enable_dkim` function to update the local DNS
        server's DNS records.
          * We recommend that you use the UAPI `EmailAuth::install_dkim_private_keys` and `EmailAuth::enable_dkim functions` in a batch UAPI call.
      operationId: install_dkim_private_keys
      parameters:
        - description: >-
            The domain for which to install a DKIM private key on the local
            server.


            **Note:**


            To install multiple RSA private keys for multiple domains, duplicate
            the parameter name. For example, use the `domain=example.com`,
            `domain=example2.com`, and `domain=example3.com` parameters.
          examples:
            multiple:
              summary: Multiple domains.
              value: domain=example&domain=example2.com&domain=example3.com
            single:
              summary: A single domain.
              value: example
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
        - description: >-
            An RSA key in [Privacy-Enhanced Mail
            (PEM)](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) format.


            **Note:**


            You **must** provide this parameter for each `domain` parameter.
          in: query
          name: key
          required: true
          schema:
            example: >-
              -----BEGIN%20RSA%20PRIVATE%20KEY-----%0aAAAAB3NzaC1yc2EAAAABIwAAAQEA5kSivOqhs0U9ZMN20nxFe27QZ3t0lT2zbH7OSXylKd%0a1rjAjYXGnSXC9j2uaZlemHlptBKVziMJC86ha7Hcj6dVOVrDQ6vF4q34bOCjtKLphQ0IjB%0azVIvqILH9eLJdRaOrS34CmgmPaisrCk5wKVlakygvUfcj3HzaTKS6THyZDGx5shdTpa9lb%0ay8tpOD3JceV7ay4w8r0DipoKPC0OLpvS4EABEeMo9sx8zQEaKv03XygjNCCYtFvxlQQIRG%0alVoL7mPaHSaL3anI05RpNbm/PS+9BhZg+BqNjU4ofHBbfkXk5MiN6M7ieR4Sk5BquccboG%0aF13U5slNgmCEekdt0amw%0a-----END%20RSA%20PRIVATE%20KEY-----%0a
            format: pem-private-key
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: install_dkim_private_keys
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contains information about
                          the DKIM private key installation to the local server.
                        items:
                          properties:
                            domain:
                              description: The DKIM private key's associated domain.
                              example: example.com
                              format: domain
                              type: string
                            msg:
                              description: >-
                                The DKIM private key's installation status
                                message.
                              example: >-
                                [ADD:TXT@default._domainkey:v=DKIM1; k=rsa;
                                p=AAAAB3NzaC1yc2EAAAABIwAAAQEA5kSivOqhs0U9ZMN20nxFe27QZ3t0lT2zbH7OSXylKd1rjAjYXGnSXC9j2uaZlemHlptBKVziMJC86ha7Hcj6dVOVrDQ6vF4q34bOCjtKLphQ0IjBzVIvqILH9eLJdRaOrS34CmgmPaisrCk5wKVlakygvUfcj3HzaTKS6THyZDGx5shdTpa9lby8tpOD3JceV7ay4w8r0DipoKPC0OLpvS4EABEeMo9sx8zQEaKv03XygjNCCYtFvxlQQIRGlVoL7mPaHSaL3anI05RpNbm/PS+9BhZg+BqNjU4ofHBbfkXk5MiN6M7ieR4Sk5BquccboGF13U5slNgmCEekdt0amw;]
                              type: string
                            status:
                              description: >-
                                Whether the system installed the DKIM private
                                key to the local server.

                                * `1` - The system installed the DKIM private
                                key.

                                * `0` - The system **cannot** install the DKIM
                                private key.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add domains' DKIM record keys
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              install_dkim_private_keys \
              domain='example' \
              key='-----BEGIN%20RSA%20PRIVATE%20KEY-----%0aAAAAB3NzaC1yc2EAAAABIwAAAQEA5kSivOqhs0U9ZMN20nxFe27QZ3t0lT2zbH7OSXylKd%0a1rjAjYXGnSXC9j2uaZlemHlptBKVziMJC86ha7Hcj6dVOVrDQ6vF4q34bOCjtKLphQ0IjB%0azVIvqILH9eLJdRaOrS34CmgmPaisrCk5wKVlakygvUfcj3HzaTKS6THyZDGx5shdTpa9lb%0ay8tpOD3JceV7ay4w8r0DipoKPC0OLpvS4EABEeMo9sx8zQEaKv03XygjNCCYtFvxlQQIRG%0alVoL7mPaHSaL3anI05RpNbm/PS+9BhZg+BqNjU4ofHBbfkXk5MiN6M7ieR4Sk5BquccboG%0aF13U5slNgmCEekdt0amw%0a-----END%20RSA%20PRIVATE%20KEY-----%0a'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/install_dkim_private_keys?domain=example&key=-----BEGIN%2520RSA%2520PRIVATE%2520KEY-----%250aAAAAB3NzaC1yc2EAAAABIwAAAQEA5kSivOqhs0U9ZMN20nxFe27QZ3t0lT2zbH7OSXylKd%250a1rjAjYXGnSXC9j2uaZlemHlptBKVziMJC86ha7Hcj6dVOVrDQ6vF4q34bOCjtKLphQ0IjB%250azVIvqILH9eLJdRaOrS34CmgmPaisrCk5wKVlakygvUfcj3HzaTKS6THyZDGx5shdTpa9lb%250ay8tpOD3JceV7ay4w8r0DipoKPC0OLpvS4EABEeMo9sx8zQEaKv03XygjNCCYtFvxlQQIRG%250alVoL7mPaHSaL3anI05RpNbm%2fPS%2b9BhZg%2bBqNjU4ofHBbfkXk5MiN6M7ieR4Sk5BquccboG%250aF13U5slNgmCEekdt0amw%250a-----END%2520RSA%2520PRIVATE%2520KEY-----%250a
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_install_dkim_private_keys.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_install_dkim_private_keys.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/install_dkim_private_keys/,
                {
                    'domain' => 'example',
                    'key' => '-----BEGIN%20RSA%20PRIVATE%20KEY-----%0aAAAAB3NzaC1yc2EAAAABIwAAAQEA5kSivOqhs0U9ZMN20nxFe27QZ3t0lT2zbH7OSXylKd%0a1rjAjYXGnSXC9j2uaZlemHlptBKVziMJC86ha7Hcj6dVOVrDQ6vF4q34bOCjtKLphQ0IjB%0azVIvqILH9eLJdRaOrS34CmgmPaisrCk5wKVlakygvUfcj3HzaTKS6THyZDGx5shdTpa9lb%0ay8tpOD3JceV7ay4w8r0DipoKPC0OLpvS4EABEeMo9sx8zQEaKv03XygjNCCYtFvxlQQIRG%0alVoL7mPaHSaL3anI05RpNbm/PS+9BhZg+BqNjU4ofHBbfkXk5MiN6M7ieR4Sk5BquccboG%0aF13U5slNgmCEekdt0amw%0a-----END%20RSA%20PRIVATE%20KEY-----%0a',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_install_dkim_private_keys.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_install_dkim_private_keys.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'install_dkim_private_keys',
                array (
                    'domain' => 'example',
                    'key' => '-----BEGIN%20RSA%20PRIVATE%20KEY-----%0aAAAAB3NzaC1yc2EAAAABIwAAAQEA5kSivOqhs0U9ZMN20nxFe27QZ3t0lT2zbH7OSXylKd%0a1rjAjYXGnSXC9j2uaZlemHlptBKVziMJC86ha7Hcj6dVOVrDQ6vF4q34bOCjtKLphQ0IjB%0azVIvqILH9eLJdRaOrS34CmgmPaisrCk5wKVlakygvUfcj3HzaTKS6THyZDGx5shdTpa9lb%0ay8tpOD3JceV7ay4w8r0DipoKPC0OLpvS4EABEeMo9sx8zQEaKv03XygjNCCYtFvxlQQIRG%0alVoL7mPaHSaL3anI05RpNbm/PS+9BhZg+BqNjU4ofHBbfkXk5MiN6M7ieR4Sk5BquccboG%0aF13U5slNgmCEekdt0amw%0a-----END%20RSA%20PRIVATE%20KEY-----%0a',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/install_spf_records:
    get:
      description: >-
        This function installs a Sender Policy Framework (SPF) record for a
        domain on the DNS server.
      operationId: install_spf_records
      parameters:
        - description: >-
            The domain for which to install an SPF record on the DNS server.


            **Note:**


            To install multiple SPF records, duplicate the parameter name. For
            example, use the `domain=example.com`, `domain=example2.com`, and
            `domain=example3.com` parameters.
          examples:
            multiple:
              summary: Multiple domains.
              value: domain=example.com&domain=example2.com&domain=example3.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            type: string
        - description: |-
            An SPF record.

            **Note:**

            You **must** provide this parameter for each `domain` parameter.
          in: query
          name: record
          required: true
          schema:
            example: >-
              "v=spf1 ip4:10.0.0.1 %2Ba %2Bmx %2Bip4:10.0.0.2 %2Bip4:10.0.0.3
              -all"
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: install_spf_records
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contains information about
                          the domain's SPF record installation to the DNS
                          server.
                        items:
                          properties:
                            domain:
                              description: >-
                                The SPF record's associated domain on the DNS
                                server.
                              example: example.com
                              format: domain
                              type: string
                            msg:
                              description: >-
                                The SPF record's installation status to the DNS
                                server.
                              example: >-
                                [ADD:TXT@example.com.:v=spf1 ip4:10.0.0.1 %2Ba
                                %2Bmx %2Bip4:10.0.0.2 %2Bip4:10.0.0.3 -all]
                              type: string
                            status:
                              description: >-
                                Whether the system installed the SPF record to
                                the DNS server.

                                - `1` - The system installed the SPF record on
                                the DNS server.

                                - `0` - The system **cannot** install the SPF
                                record on the DNS server.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors`  field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add domains' SPF records
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              install_spf_records \
              domain='example.com' \
              record='"v=spf1 ip4:10.0.0.1 %2Ba %2Bmx %2Bip4:10.0.0.2 %2Bip4:10.0.0.3 -all"'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/install_spf_records?domain=example.com&record=%22v%3dspf1%20ip4%3a10.0.0.1%20%252Ba%20%252Bmx%20%252Bip4%3a10.0.0.2%20%252Bip4%3a10.0.0.3%20-all%22
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_install_spf_records.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_install_spf_records.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/install_spf_records/,
                {
                    'domain' => 'example.com',
                    'record' => '"v=spf1 ip4:10.0.0.1 %2Ba %2Bmx %2Bip4:10.0.0.2 %2Bip4:10.0.0.3 -all"',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_install_spf_records.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_install_spf_records.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'install_spf_records',
                array (
                    'domain' => 'example.com',
                    'record' => '"v=spf1 ip4:10.0.0.1 %2Ba %2Bmx %2Bip4:10.0.0.2 %2Bip4:10.0.0.3 -all"',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/remove_dmarc:
    get:
      description: This function removes the DMARC record for domains.
      operationId: EmailAuth::remove_dmarc
      parameters:
        - description: >-
            The domain from which to remove the DMARC record.


            **Note:**


            If you do not include this argument, the system will remove **all**
            DMARC records from **all** domains owned by the user.


            To remove multiple domain DMARC records, duplicate the parameter
            name. For example, use the `domain=example.com`,
            `domain=example2.com`, and `domain=example3.com` parameters.


            You **cannot** remove DMARC records on temporary domains.
          examples:
            multiple:
              summary: Multiple domains.
              value: domain=example.com&domain=example2.com&domain=example.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domain
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_dmarc
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contain information about the
                          removed DMARC records.
                        items:
                          properties:
                            domain:
                              description: >-
                                The domain for which the DMARC record was
                                removed.
                              example: example.com
                              format: domain
                              type: string
                            msg:
                              description: Information about the removed DMARC record.
                              example: >-
                                [REMOVE:TXT@_dmarc.example.com:v=DMARC1;
                                p=reject;]
                              type: string
                            status:
                              description: >-
                                Whether the system removed the domain's DMARC
                                record.

                                * `1` - The system removed the domain's DMARC
                                record.

                                * `0` - The system did **not** remove the
                                domain's DMARC record.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove DMARC record from domain(s)
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              remove_dmarc \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/remove_dmarc?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_remove_dmarc.live.pl and put this code
            into that file.

            # 5) In your browser log in to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_remove_dmarc.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/remove_dmarc/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html-printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_remove_dmarc.live.php and put this
            code into that file.

            // 5) In your browser log in to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_remove_dmarc.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'remove_dmarc',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html-printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: '124'
  /EmailAuth/validate_current_dkims:
    get:
      description: |-
        This function retrieves and checks the DomainKeys Identified Mail
        (DKIM) records for one or more domains.
      operationId: validate_current_dkims
      parameters:
        - description: The domain for which to check the DKIM records.
          examples:
            multiple:
              summary: Check DKIM records for a multiple domains.
              value: |-
                domain=example.com,domain=another.com,domain=yetanother.com
                domain=example.com,domain-1=another.com,domain-2=yetanother.com
            single:
              summary: Check DKIM records for a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: validate_current_dkims
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          An array that contains information about the
                          domain's DKIM records. 
                        items:
                          properties:
                            domain:
                              description: >-
                                The domain that the function used to check

                                the DKIM record. This will be the value of

                                the domain parameter with a `default._domainkey`
                                prefix.
                              example: default._domainkey.example.com
                              format: domain
                              type: string
                            error:
                              description: >-
                                A message that details the reason why the DNS
                                lookup failed.


                                **Note:**


                                The function only returns this value when the
                                `state` returned

                                is the `ERROR` value.
                              example: >-
                                (XID 4krw35) DNS returned SERVFAIL (code 2)

                                in response to the systems query for
                                default._domainkey.example2.coms

                                TXT records.
                              type: string
                            expected:
                              description: The DKIM record's contents.
                              example: >-
                                v=DKIM1; k=rsa;
                                p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDw5nw4NP1RsWXlfmiMzByDfOT16QCZO\/xJtrPZKskZF8\/sU0zWGTqKUOErlyJfoJzMDUv3\/zzjGswc2nEmYqxxoQZaBkN4QaS6MvJQxysAr+sK8C248\/r9zMperQdhJedUVejtpFQHJwgqpHy1tQMxY37L7sQjdxmQ5WnQ1acXiwIDAQAB
                              type: string
                            records:
                              description: >-
                                The domain's DNS DKIM TXT records.


                                **Important:**


                                This function may fail to preserve whitespace in
                                DKIM records.
                              items:
                                properties:
                                  current:
                                    description: >-
                                      The domain's DKIM TXT record data
                                      contents.


                                      **Important:**

                                       This function may fail to preserve whitespace in DKIM records.
                                    example: >-
                                      v=DKIM1; k=rsa;
                                      p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDw5nw4NP1RsWXlfmiMzByDfOT16QCZO\/xJtrPZKskZF8\/sU0zWGTqKUOErlyJfoJzMDUv3\/zzjGswc2nEmYqxxoQZaBkN4QaS6MvJQxysAr+sK8C248\/r9zMperQdhJedUVejtpFQHJwgqpHy1tQMxY37L7sQjdxmQ5WnQ1acXiwIDAQAB
                                    type: string
                                  reason:
                                    description: >-
                                      The reason why the DKIM TXT record is not
                                      correct, if one exists.


                                      **Note:**


                                      This function **only** returns this value
                                      when the `state` value is `PERMFAIL`.
                                    example: >-
                                      example.com: The DKIM version must be
                                      "DKIM1".
                                    type: string
                                  state:
                                    description: >-
                                      The DKIM TXT record's status:

                                      * `VALID` - The DKIM TXT record matches
                                      the local server's public key.

                                      * `MISMATCH` - The DKIM TXT record does
                                      not match the local server's public key.

                                      * `PERMFAIL` - Multiple DKIM TXT records
                                      for the domain exist or a misconfigured
                                      DKIM TXT record exists.
                                    enum:
                                      - VALID
                                      - MISMATCH
                                      - PERMFAIL
                                    example: VALID
                                    type: string
                                type: object
                              type: array
                            state:
                              description: >-
                                The domain's DKIM record status.

                                Possible values:


                                * `VALID` The DKIM record is valid.

                                * `MALFORMED` A single DKIM record exists, but
                                the record does not match the expected DKIM
                                specifications.

                                * `MISMATCH` A DKIM record exists, but it does
                                not match the expected public key.

                                * `MISSING` No DKIM record exists for the
                                domain.

                                * `MULTIPLE` Multiple DKIM records exist.

                                * `NOPUB` No key exists on the local server for
                                the domain.

                                * `ERROR` The record's DNS lookup failed. The
                                function returns the reason in the error return.
                              enum:
                                - VALID
                                - MALFORMED
                                - MISMATCH
                                - MISSING
                                - MULTIPLE
                                - NOPUB
                                - ERROR
                              example: VALID
                              type: string
                            validity_cache_update:
                              description: >-
                                The result of the DKIM record's validity cache
                                update operation:

                                * `set` The domain is invalid but passed its
                                validity check. The validity check now passes
                                the domain as valid.

                                * `unset` The domain is invalid and did not pass
                                its validity check. The validity check does not
                                pass the domain as valid.

                                * `valid` The domain is valid and passed its
                                validity check. There are no changes required.

                                * `invalid` The domain is invalid and failed its
                                validity check. There are no changes required.

                                * `none` The domain is invalid, but the system
                                will not take further action.

                                * `error` The domain's validity check operation
                                failed.
                              enum:
                                - set
                                - unset
                                - valid
                                - invalid
                                - none
                                - error
                              example: valid
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate domains' DKIM records
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              validate_current_dkims \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/validate_current_dkims?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_validate_current_dkims.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_dkims.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/validate_current_dkims/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_validate_current_dkims.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_dkims.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'validate_current_dkims',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/validate_current_dmarcs:
    get:
      description: >-
        This function checks the validity of the current DMARC record for one or
        more domains.
      operationId: EmailAuth::validate_current_dmarcs
      parameters:
        - description: >-
            The domain for which to check the DMARC record.


            **Note:**


            If you do not include this argument, the system will validate DMARC
            records for all domains owned by the user.
          examples:
            multiple:
              summary: Check DMARC records for multiple domains.
              value: domain=example.com,domain=another.com,domain=yetanother.com
            single:
              summary: Check DMARC records for a single domain.
              value: domain=example.com
          in: query
          name: domain
          required: false
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: validate_current_dmarcs
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          An array that contains information about the
                          domain's DMARC records. 
                        items:
                          properties:
                            domain:
                              description: The target domain of the DMARC policy.
                              example: example.com
                              format: domain
                              type: string
                            error:
                              description: >-
                                A message that details either why the DNS lookup
                                failed, or if there is a SPF/DKIM failure.


                                **Note:**


                                This will be set to `MALFORMED` if there is a
                                syntax issue with this domain's SPF and DKIM
                                records.
                              example: >-
                                (XID 4krw35) DNS returned SERVFAIL (code 2)

                                in response to the system's query for
                                _dmarc.example.com

                                TXT records.
                              type: string
                            record:
                              description: The domain's DMARC TXT record.
                              example: v=DMARC1; p=none;
                              type: string
                            state:
                              description: >-
                                The domain's DMARC record status.

                                Possible values:


                                * `VALID` - A DMARC policy is set for the
                                domain, along with valid SPF and DKIM records
                                for the domain and IP address.

                                * `MALFORMED` - A DMARC record is set, but it
                                did not pass a syntax check.

                                * `DKIM_SPF_ERROR` - A DMARC record exists;
                                however, both the DKIM and SPF records for this
                                domain did not pass validation.

                                * `DKIM_ERROR` - A DMARC record exists; however,
                                the DKIM record for this domain did not pass
                                validation.

                                * `SPF_ERROR` - A DMARC record exists; however,
                                the SPF record for this domain did not pass
                                validation.

                                * `MISSING` - No DMARC record exists for the
                                domain at the DMARC subdomain location.

                                * `DNS_ERROR` - A DNS error prevented validation
                                of the DMARC record.
                              enum:
                                - VALID
                                - MALFORMED
                                - DKIM_SPF_ERROR
                                - DKIM_ERROR
                                - SPF_ERROR
                                - MISSING
                                - DNS_ERROR
                              example: VALID
                              type: string
                            subdomain:
                              description: |-
                                The domain that the function used to check
                                the DMARC record. This will be the value of
                                the `domain` parameter with a `_dmarc` prefix.
                              example: _dmarc.example.com
                              format: domain
                              type: string
                            suggested:
                              description: The recommended DMARC policy.
                              example: v=DMARC1; p=none;
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate domains' DMARC records
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              validate_current_dmarcs \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/validate_current_dmarcs?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_validate_current_dmarcs.live.pl and put
            this code into that file.

            # 5) In your browser log in to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_dmarcs.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/validate_current_dmarcs/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_validate_current_dmarcs.live.php and
            put this code into that file.

            // 5) In your browser log in to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_dmarcs.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'validate_current_dmarcs',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 124
  /EmailAuth/validate_current_ptrs:
    get:
      description: >-
        This function validates the pointer records (PTR) for IPv4 and

        IPv6 addresses that the account's domains send mail from. It retrieves
        the

        PTR records for each IP address and determines which of the domain's IP
        addresses

        send mail. It then validates the PTR records for each IP address and
        validates

        the A or AAAA records pointing to each domain. This function also
        ensures

        that at least one of that domain's A or AAAA records points back to the
        IP

        address.
      operationId: validate_current_ptrs
      parameters:
        - description: The domain for which to validate the PTR records.
          examples:
            multiple:
              summary: Check PTR records for a multiple domains.
              value: >-
                `domain`=example.com,`domain`=another.com,`domain`=yetanother.com

                `domain`=example.com,`domain-1`=another.com,`domain-2`=yetanother.com
            single:
              summary: Check PTR records for a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: validate_current_ptrs
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array that contains information about the account's
                          PTR records.
                        items:
                          properties:
                            arpa_domain:
                              description: >-
                                The IP address used to perform a reverse DNS
                                (rDNS) lookup.

                                For more information about rDNS, read our

                                [How to Configure Reverse DNS for BIND in
                                WHM](https://go.cpanel.net/HowtoConfigureReverseDNSforBINDinWHM)

                                documentation.

                                A valid reversed IP address appended with one of
                                the following:

                                * in-addr.arpa - An IPv4 address.

                                * ip6.arpa - An IPv6 address.


                                For information about .arpa domains, read
                                Wikipedia's

                                [Reverse DNS
                                lookup](https://en.wikipedia.org/wiki/Reverse_DNS_lookup)

                                article.


                                **Note:**


                                The function does not return this value for a
                                domain with an invalid IP address.
                              example: 1.0.0.10.in-addr.arpa
                              type: string
                            domain:
                              description: The queried domain.
                              example: example.com
                              format: domain
                              type: string
                            error:
                              description: >-
                                A mmessage that details the reason why the
                                domain's IP address validation failed.


                                **Note:**


                                The function only returns this value when the
                                `state` returned is

                                the `ERROR` value.
                              example: 1.1.1.1.1 is not a valid IP address.
                              type: string
                            helo:
                              description: |-
                                The hostname that the domain uses to identify
                                itself to remote SMTP servers. A valid hostname.
                              example: example.com
                              format: domain
                              type: string
                            ip_address:
                              description: >-
                                The IP address.


                                **Note:**


                                The function does **not** return this value for
                                a domain with an invalid IP address.
                              example: 10.0.0.1
                              type: string
                            ip_version:
                              description: >-
                                The IP version number.

                                * 4

                                * 6


                                **Note:**


                                The function does **not** return this value for
                                a domain with an invalid IP address.
                              enum:
                                - 4
                                - 6
                              example: 4
                              type: integer
                            nameservers:
                              description: >-
                                The authoritative nameservers for the domain's
                                PTR record.
                              items:
                                example: ns1.example.com
                                format: domain
                                type: string
                              type: array
                            ptr_records:
                              description: >-
                                The domain's PTR records.


                                **Note:**


                                The function does **not** return this for a
                                domain with an invalid IP address.
                              items:
                                properties:
                                  domain:
                                    description: |-
                                      The fully-qualified domain name (FQDN)
                                      that a PTR record points to.
                                    example: example.com
                                    format: domain
                                    type: string
                                  forward_records:
                                    description: >-
                                      A list of IP addresses that the domain

                                      resolves to for A (IPv4) and AAAA (IPv6)
                                      records.
                                    items:
                                      example: 10.0.0.1
                                      type: string
                                    type: array
                                  state:
                                    description: >-
                                      The state of the domain's PTR record.

                                      * `VALID` - The PTR record is valid.

                                      * `MISSING_FWD` - The PTR points to a
                                      domain without an A or AAAA record.

                                      * `FWD_MISMATCH` - The PTR record points
                                      to a domain without an A or AAAA record
                                      that points back to the IP address.
                                    enum:
                                      - VALID
                                      - MISSING_FWD
                                      - FWD_MISMATCH
                                    example: VALID
                                    type: string
                                type: object
                              type: array
                            state:
                              description: >-
                                Whether the PTR records are valid for the
                                domain.

                                * `ERROR` - The domain's IP address is invalid.
                                The function returns the reason in the error
                                return.

                                * `IP_IS_PRIVATE` - The IP address exists within
                                a range of private IP addresses.

                                * `VALID` - The PTR record is valid.

                                * `MISSING_PTR` - No PTR records exist for the
                                IP address.

                                * `PTR_MISMATCH` - One or more PTR records point
                                to a domain that does not point back to the
                                correct IP address.


                                **Note:**


                                * DNS does not define PTR records for private IP
                                addresses.

                                * The function only returns a VALID response if
                                all of an IP address's PTR records are valid.
                              enum:
                                - ERROR
                                - IP_IS_PRIVATE
                                - VALID
                                - MISSING_PTR
                                - PTR_MISMATCH
                              example: VALID
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate domains' PTR records
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              validate_current_ptrs \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/validate_current_ptrs?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_validate_current_ptrs.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_ptrs.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/validate_current_ptrs/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_validate_current_ptrs.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_ptrs.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'validate_current_ptrs',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /EmailAuth/validate_current_spfs:
    get:
      description: |-
        This function retrieves the the Sender Policy Framework (SPF) records
        for one or more domains.
      operationId: validate_current_spfs
      parameters:
        - description: The domain for which to check the `SPF` records.
          examples:
            multiple:
              summary: Check `SPF` records for a multiple domains.
              value: >-
                `domain`=example.com,`domain`=another.com,`domain`=yetanother.com

                `domain`=example.com,`domain-1`=another.com,`domain-2`=yetanother.com
            single:
              summary: Check `SPF` records for a single domain.
              value: example.com
          in: query
          name: domain
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: validate_current_spfs
                    type: string
                  module:
                    description: The name of the module called.
                    example: EmailAuth
                    type: string
                  result:
                    properties:
                      data:
                        description: A list of information about a domain's SPF records.
                        items:
                          properties:
                            domain:
                              description: The queried domain.
                              example: example.com
                              format: domain
                              type: string
                            error:
                              description: >-
                                A message that details the reason why the DNS
                                lookup failed.


                                **Note:**

                                 The function **only** returns this value when the `state` return is the `ERROR` value.
                              example: >-
                                (XID rm8h9f) DNS returned SERVFAIL (code 2)

                                in response to the systems query for
                                example2.coms

                                TXT records.
                              type: string
                            expected:
                              description: The SPF record for the domain in the DNS.
                              example: ip6:0:0:0:0:0:ffff:c0a8:101
                              type: string
                            ip_address:
                              description: The domain's IP address.
                              example: 0:0:0:0:0:ffff:c0a8:101
                              type: string
                            ip_version:
                              description: |-
                                The IP address version.
                                * `4`
                                * `6`
                              enum:
                                - 4
                                - 6
                              example: 6
                              type: integer
                            records:
                              description: The SPF records of the domain's DNS.
                              items:
                                properties:
                                  current:
                                    description: The SPF record's contents.
                                    example: >-
                                      v=spf1 +a +mx ip6:0:0:0:0:0:ffff:c0a8:101
                                      ~all
                                    type: string
                                  reason:
                                    description: >-
                                      The reason why the SPF record is **not**
                                      correct, if one exists.


                                      **Note:**


                                      If no errors exist, the function does
                                      **not** return this value.
                                    example: >-
                                      'example.com: Sender

                                      is not authorized by default to use
                                      ''example.com''

                                      in ''helo'' identity, however domain is
                                      not

                                      currently prepared for false failures
                                      (mechanism

                                      ''~all'' matched)'
                                    type: string
                                  state:
                                    description: >-
                                      The SPF record's status:

                                      * `PASS` - The `SPF` record confirms that
                                      the `ip_address` value is a valid sender.

                                      * `NEUTRAL` - The current `SPF` record
                                      configuration does not determine the
                                      `ip_address` value's validity.

                                      * `FAIL` - The `SPF` record states that
                                      the `ip_address` value is **not** a valid
                                      sender.

                                      * `SOFTFAIL` - The `SPF` record states
                                      that the `ip_address` value is **not** a
                                      valid sender, but does not `FAIL` state
                                      it.

                                      * `TEMPERROR` - The `SPF` record check
                                      resulted in a failure. For example, a
                                      network failure.

                                      * `PERMERROR` - The domain's `SPF` records
                                      are **incorrect** and require manual
                                      correction.


                                      **Note:**


                                      These values correspond with [RFC7208
                                      section
                                      2.6](https://tools.ietf.org/html/rfc7208#section-2.6).
                                    enum:
                                      - PASS
                                      - NEUTRAL
                                      - FAIL
                                      - SOFTFAIL
                                      - TEMPERROR
                                      - PERMERROR
                                    example: PASS
                                    type: string
                                type: object
                              type: array
                            state:
                              description: >-
                                The SPF record's status:

                                * `VALID` - A single `SPF TXT` record exists in
                                the domain's DNS with the correct `ip_address`
                                value or redirect mechanism.

                                * `MISMATCHED` - An `SPF TXT` record exists for
                                the domain that does **not** match the
                                `ip_address` value.

                                * `MULTIPLE` - Multiple `SPF TXT` records exist
                                in the domain's DNS.

                                * `MISSING` - No `SPF TXT` record exists for the
                                domain's DNS.

                                * `ERROR` - The record's DNS lookup failed. The
                                function returns the reason in the error return.
                              enum:
                                - VALID
                                - MISMATCHED
                                - MULTIPLE
                                - MISSING
                                - ERROR
                              example: VALID
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate domains' SPF records
      tags:
        - EmailAuth
        - Email DNS Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EmailAuth \
              validate_current_spfs \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EmailAuth/validate_current_spfs?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EmailAuth_validate_current_spfs.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_spfs.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EmailAuth/,
                q/validate_current_spfs/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EmailAuth_validate_current_spfs.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EmailAuth_validate_current_spfs.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EmailAuth',
                'validate_current_spfs',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /ExternalAuthentication/add_authn_link:
    get:
      description: >-
        This function adds an External Authentication authorization link to an
        account.
      operationId: add_authn_link
      parameters:
        - description: "The preferred username of the account on the\_identity provider."
          in: query
          name: preferred_username
          required: true
          schema:
            example: Example
            type: string
        - description: "The name of the\_identity provider."
          in: query
          name: provider_id
          required: true
          schema:
            example: google
            type: string
        - description: "The unique identifier for the user at the\_identity provider."
          in: query
          name: subject_unique_identifier
          required: true
          schema:
            example: '123456789012345678901'
            type: string
        - description: The username.
          in: query
          name: username
          required: true
          schema:
            example: example
            format: username
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_authn_link
                    type: string
                  module:
                    description: The name of the module called.
                    example: ExternalAuthentication
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add external authentication link
      tags:
        - ExternalAuthentication
        - External Authentication
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ExternalAuthentication \
              add_authn_link \
              username='example' \
              provider_id='google' \
              subject_unique_identifier='123456789012345678901' \
              preferred_username='Example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ExternalAuthentication/add_authn_link?username=example&provider_id=google&subject_unique_identifier=123456789012345678901&preferred_username=Example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ExternalAuthentication_add_authn_link.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_add_authn_link.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ExternalAuthentication/,
                q/add_authn_link/,
                {
                    'username' => 'example',
                    'provider_id' => 'google',
                    'subject_unique_identifier' => '123456789012345678901',
                    'preferred_username' => 'Example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ExternalAuthentication_add_authn_link.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_add_authn_link.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ExternalAuthentication',
                'add_authn_link',
                array (
                    'username' => 'example',
                    'provider_id' => 'google',
                    'subject_unique_identifier' => '123456789012345678901',
                    'preferred_username' => 'Example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /ExternalAuthentication/configured_modules:
    get:
      description: "This function lists the display information for your server's available and configured external authentication\_identity provider modules."
      operationId: configured_modules
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: configured_modules
                    type: string
                  module:
                    description: The name of the module called.
                    example: ExternalAuthentication
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            color:
                              description: >-
                                The background color of the button on the cPanel
                                interface.
                              example: 00aef0
                              format: RGB
                              type: string
                            display_name:
                              description: >-
                                The identity provider's friendly name. cPanel &
                                WHM interfaces will display this value.
                              example: cPanel ID
                              type: string
                            documentation_url:
                              description: >-
                                The public URL of the identity provider's
                                implementation documentation.
                              example: https://go.cpanel.net/OpenIDConnect
                              format: url
                              type: string
                            icon:
                              description: >-
                                The icon file to display on the button in the
                                cPanel login interface.
                              example: >-
                                iVBORw0KGgoAAAANSUhEUgAAACMAAAAhCAYAAABTERJSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMTNFRUVGMzIyODUxMUU1OUM1RERGODcwRjIwNTQ4MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMTNFRUVGNDIyODUxMUU1OUM1RERGODcwRjIwNTQ4MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjExM0VFRUYxMjI4NTExRTU5QzVEREY4NzBGMjA1NDgwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjExM0VFRUYyMjI4NTExRTU5QzVEREY4NzBGMjA1NDgwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+oa0v2AAAA3VJREFUeNrsWM1uFEcQruqent3Z9Y43DmuD2YT1LoIICSIgEULKC+SaF8gr5JAnyD3XKCcChxxyyhNYiFMU5ZRTzE8UuGCQY8DGeGd3Zqrydc/ajiWjBHCEpWxLPf1T01VfV/d09TesqnRUUuQfN+5tUzMylAsRM9EOPlTJV0V9qWQg3BgLXek4+mUtpxKy+bqhAvIcLxVSlT4FHVAQITegO7Z8vGFpqeW4P+N40Iy434rNR23Hcd3ymV0wL00TNIJH6UsY2syVsrICuTlWGFJyAJlYrtVj7jUi9gZhzPQSS4tJRO+1nF1C/aThoHFfgp7n+zzjZ+GNjUWDB7yHRPYAQQnV8MCMOu04ughvPEbzztV599UHbXvOGe7OwHhsKH3jZdrKiZwhgrtcYs0ilJ6A4ffhytMpZtmAa/3s4OYuQFhg/m75IX1xtm2/XKjbw90zn3Zr19+p81W4dr5mqP0vxslkOx3+Bu6n9jOsROttf02GjlCagpmCmYI5VDD8GuP0tYYdHP72HXq3N4prTcfHEA6ev8ir2OSjLwK0jkvRoRAjNmlkFG1aGAktPxrK6NZq/o3lwh1POPtkIQ4ncqm7Y2lcqua4o4zKKr4h66ggLrSSo2zinfUrnXgPzM9r+c0P51wySE22NhTBNUEQnVGqbuZSrm6LXJhzMkit/JmVdfT/vl1QcXej+H4r91cLyrtNW/ZmrG4AydORytMRyrHXpfJgq5TL70Zy+Vgs97JCnwS5yhOgRD3fAUP+coW8qa+Q4Kxr3/72Il0dFqEtPsuubLctupdflqSyHXBEkzvFq26AfYGS/7b4hg/YDNNPewpmCuZ/DwYn5I/rI7mLY/7ZW2eUy6ujz/0ZBZoSz8a8CB50ohkRqIo57QkZiNhS6mw/qaiKwYHmySXzfwGmorZKw1LGOjb3s7K8r8o/CRXhIPXZU9Sa5Q441aVByz5CoMtXnpVfyyydQ4DtQt4DzXkjhsE+JvzwRxZ4smeToKehHpgtVzxbAuPUwDwR2Oj8XES/rueB5nbqDJCeBJo6xvZmQG8bEQ1mY3Mqifgk+jzb9H3dgzzp6S3603/m2hOv+OwmRDnFTQHLFdaphWAL8h68mpWSbRW08lBoxf8I8IQfohCrEu9VLD1Yqmel/TQOSz5oxfzxrDN2h5TyUfolcqQ+7b8EGACd0Ob6pUnq9QAAAABJRU5ErkJggg==
                              format: base64 image
                              type: string
                            icon_type:
                              description: The icon file's MIME type.
                              example: image/svg+xml
                              format: MIME
                              type: string
                            label:
                              description: >-
                                The text label of the login icon in the cPanel
                                login interface.
                              example: Log in with a cPanel ID Account
                              type: string
                            link:
                              description: >-
                                link to the identity provider's configuration
                                for the appropriate service on the system.
                              example: >-
                                https://hostname.example.com:2083/openid_connect/cpanelid
                              format: url
                              type: string
                            provider_name:
                              description: The identity provider's system name.
                              example: cpanelid
                              type: string
                            textcolor:
                              description: >-
                                The color of the text label in the cPanel login
                                interface.
                              example: FFFFFF
                              format: RGB
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return server's external authentication providers
      tags:
        - ExternalAuthentication
        - External Authentication
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ExternalAuthentication \
              configured_modules
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ExternalAuthentication/configured_modules
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ExternalAuthentication_configured_modules.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_configured_modules.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ExternalAuthentication/,
                q/configured_modules/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            ExternalAuthentication_configured_modules.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_configured_modules.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ExternalAuthentication',
                'configured_modules'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /ExternalAuthentication/get_authn_links:
    get:
      description: >-
        This function lists the external authentication links to the current
        cPanel account.
      operationId: get_authn_links
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_authn_links
                    type: string
                  module:
                    description: The name of the module called.
                    example: ExternalAuthentication
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            link_time:
                              description: >-
                                When the user linked their account to the
                                identity provider.
                              example: 1443124604
                              format: unix_timestamp
                              type: integer
                            preferred_username:
                              description: >-
                                The preferred username of the account on the
                                identity provider.
                              example: username@gmail.com
                              type: string
                            provider_id:
                              description: >-
                                The system's unique key for the identity
                                provider.
                              example: google
                              type: string
                            provider_protocol:
                              description: The identity provider's protocol.
                              example: openid_connect
                              type: string
                            subject_unique_identifier:
                              description: >-
                                The unique identifier for the user at the
                                identity provider.
                              example: 123456789012346
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return external authentication links
      tags:
        - ExternalAuthentication
        - External Authentication
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ExternalAuthentication \
              get_authn_links
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ExternalAuthentication/get_authn_links
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ExternalAuthentication_get_authn_links.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_get_authn_links.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ExternalAuthentication/,
                q/get_authn_links/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ExternalAuthentication_get_authn_links.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_get_authn_links.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ExternalAuthentication',
                'get_authn_links'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /ExternalAuthentication/has_external_auth_modules_configured:
    get:
      description: >-
        This function determines whether the user enabled external
        authentication modules.
      operationId: has_external_auth_modules_configured
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_external_auth_modules_configured
                    type: string
                  module:
                    description: The name of the module called.
                    example: ExternalAuthentication
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the cPanel user enabled any external modules.


                          * `1` - Enabled.

                          * `0` - **Not** enabled.


                          **Note:**


                          For more information, read our [Password and
                          Security](https://go.cpanel.net/cpaneldocsPasswordoutputampSecurity)
                          and [External
                          Authentication](https://go.cpanel.net/externalauth)
                          FAQ documentation.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return external authentication user status
      tags:
        - ExternalAuthentication
        - External Authentication
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ExternalAuthentication \
              has_external_auth_modules_configured
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ExternalAuthentication/has_external_auth_modules_configured
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            ExternalAuthentication_has_external_auth_modules_configured.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_has_external_auth_modules_configured.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ExternalAuthentication/,
                q/has_external_auth_modules_configured/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            ExternalAuthentication_has_external_auth_modules_configured.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_has_external_auth_modules_configured.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ExternalAuthentication',
                'has_external_auth_modules_configured'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /ExternalAuthentication/remove_authn_link:
    get:
      description: >-
        This function removes a link to an account at an external authentication
        identity provider.
      operationId: remove_authn_link
      parameters:
        - description: "The name of the\_identity provider."
          in: query
          name: provider
          required: true
          schema:
            example: cpanelid
            type: string
        - description: "The unique identifier for the user at the\_identity provider."
          in: query
          name: subject_unique_identifier
          required: true
          schema:
            example: '123456789012345678901'
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_authn_link
                    type: string
                  module:
                    description: The name of the module called.
                    example: ExternalAuthentication
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove external authentication link
      tags:
        - ExternalAuthentication
        - External Authentication
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ExternalAuthentication \
              remove_authn_link \
              provider='cpanelid' \
              subject_unique_identifier='123456789012345678901'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ExternalAuthentication/remove_authn_link?provider=cpanelid&subject_unique_identifier=123456789012345678901
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ExternalAuthentication_remove_authn_link.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_remove_authn_link.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ExternalAuthentication/,
                q/remove_authn_link/,
                {
                    'provider' => 'cpanelid',
                    'subject_unique_identifier' => '123456789012345678901',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            ExternalAuthentication_remove_authn_link.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/ExternalAuthentication_remove_authn_link.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ExternalAuthentication',
                'remove_authn_link',
                array (
                    'provider' => 'cpanelid',
                    'subject_unique_identifier' => '123456789012345678901',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Features/get_feature_metadata:
    get:
      description: >-
        This function lists the details of a cPanel account's available feature
        lists.
      operationId: get_feature_metadata
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_feature_metadata
                    type: string
                  module:
                    description: The name of the module called.
                    example: Features
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects containing feature information.
                        items:
                          properties:
                            id:
                              description: The feature's system ID.
                              example: wordpress_manager
                              type: string
                            is_cpaddon:
                              description: >-
                                Whether the feature is a
                                [cPAddon](https://go.cpanel.net/cPanelGlossary#addons-cpaddons).


                                * `1` — cPAddon.

                                * `0` — **Not** a cPAddon.
                              enum:
                                - 1
                                - 0
                              example: 0
                              type: integer
                            is_plugin:
                              description: >-
                                Whether the feature is a
                                [plugin](https://go.cpanel.net/cpanelplugin).


                                * `1` — Plugin.

                                * `0` — **Not** a plugin.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            name:
                              description: The feature's name.
                              example: Wordpress Manager
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's features' metadata
      tags:
        - Features
        - cPanel Features
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Features \
              get_feature_metadata
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Features/get_feature_metadata
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Features_get_feature_metadata.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Features_get_feature_metadata.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Features/,
                q/get_feature_metadata/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Features_get_feature_metadata.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Features_get_feature_metadata.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Features',
                'get_feature_metadata'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /Features/has_feature:
    get:
      description: >-
        This function checks whether a cPanel account has access to

        a
        [feature](https://go.cpanel.net/whmdocsFeatureManager#selectable-features).
      operationId: has_feature
      parameters:
        - description: The feature's name.
          in: query
          name: name
          required: true
          schema:
            example: autossl
            type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                does-not-have-feature:
                  summary: The account does not have a feature.
                  value:
                    result:
                      data: null
                      errors: null
                      messages: null
                      metadata: {}
                      status: 0
                      warnings: null
                exists-but-acct-does-not-have:
                  summary: The feature exists but the account does not have it enabled.
                  value:
                    result:
                      data: null
                      errors: null
                      messages:
                        - The feature “autossl” exists but is not enabled.
                      metadata: {}
                      status: 0
                      warnings: null
                has-feature:
                  summary: The account has a feature.
                  value:
                    result:
                      data: null
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_feature
                    type: string
                  module:
                    description: The name of the module called.
                    example: Features
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: >-
                          A message about the feature's status.


                          **Note:**


                          The function only returns a message when the feature
                          exists but

                          it is **not** enabled.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          Whether the feature exists on the system.


                          * `1` — The feature exists on the system and it is
                          enabled.

                          * `0` — The feature exists on the system, but the user
                          does **not** have it.

                          * `null` — The feature is **not** installed on the
                          system.
                        enum:
                          - 0
                          - 1
                        example: 1
                        nullable: true
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
          description: HTTP Request was successful.
      summary: Validate cPanel account's feature access
      tags:
        - Features
        - cPanel Features
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Features \
              has_feature \
              name='autossl'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Features/has_feature?name=autossl
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Features_has_feature.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Features_has_feature.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Features/,
                q/has_feature/,
                {
                    'name' => 'autossl',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Features_has_feature.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Features_has_feature.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Features',
                'has_feature',
                array (
                    'name' => 'autossl',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Features/has_features_like:
    get:
      description: >-
        This function allows you to search for cPanel account features and
        determine whether those features

        are enabled.
      operationId: has_features_like
      parameters:
        - description: >-
            The feature's name that you wish to search.


            **Note:**


            To use a regular expression, you must set the `is_regex` parameter's
            value to `true`.
          in: query
          name: pattern
          required: true
          schema:
            example: mail
            type: string
        - description: >-
            Whether the `pattern` parameter's value is a regular expression.

            *  `1` - The `pattern` parameter's value is a regular expression.

            *  `0` - The `pattern` parameter's value is **not** a regular
            expression
          in: query
          name: is_regex
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              examples:
                has-enabled-features:
                  summary: Pattern matches enabled features
                  value:
                    result:
                      data:
                        has_matching_features: 1
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
                no-enabled-features:
                  summary: Pattern matches features but none are enabled
                  value:
                    result:
                      data:
                        has_matching_features: 0
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
                no-matches:
                  summary: No features match the pattern
                  value:
                    result:
                      data:
                        has_matching_features: 0
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
                missing-pattern:
                  summary: Pattern parameter is required
                  value:
                    result:
                      data: null
                      errors:
                        - '"pattern" is required'
                      messages: null
                      metadata: {}
                      status: 0
                      warnings: null
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_features_like
                    type: string
                  module:
                    description: The name of the module called.
                    example: Features
                    type: string
                  result:
                    properties:
                      data:
                        description: Object containing the result of the feature search.
                        properties:
                          has_matching_features:
                            description: >-
                              Whether any features match the search pattern and
                              are enabled.

                              * `1` - At least one matching feature is enabled.

                              * `0` - No matching features are enabled (either
                              no matches or all matches are disabled).
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        example:
                          has_matching_features: 1
                        nullable: true
                        type: object
                      errors:
                        description: >-
                          List of errors if the API failed.


                          Common errors include missing pattern parameter or
                          invalid regular expression syntax.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          Whether the API call was successful.

                          * `1` - Success. Features were searched and results
                          returned.

                          * `0` - Failed. Check the `errors` field for details
                          (e.g., missing pattern).
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
          description: HTTP Request was successful.
      summary: Return whether queried features are enabled
      tags:
        - Features
        - cPanel Features
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Features \
              has_features_like \
              pattern='mail'
        - label: CLI (Regex)
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Features \
              has_features_like \
              pattern='^ssl.*' \
              is_regex=1
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Features/has_features_like?pattern=mail
        - label: URL (Regex)
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Features/has_features_like?pattern=%5Essl.*&is_regex=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Features_has_features_like.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Features_has_features_like.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Features/,
                q/has_features_like/,
                {
                    'pattern' => 'mail',
                    'is_regex' => 0,
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Features_has_features_like.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Features_has_features_like.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Features',
                'has_features_like',
                array (
                    'pattern' => 'mail',
                    'is_regex' => 0,
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.130
  /Features/list_features:
    get:
      description: This function lists a cPanel account's features.
      operationId: list_features
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_features
                    type: string
                  module:
                    description: The name of the module called.
                    example: Features
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: |-
                            Whether the feature is installed.
                            * `1` - Installed.
                            * `0` - **Not** installed.
                          enum:
                            - 0
                            - 1
                          example: 0
                          type: integer
                        description: >-
                          Features available to the account. The key is a
                          feature name and the value

                          is whether the feature is installed.


                          **Note:**


                          This function returns features that third-party
                          software or plugins provide.
                        example:
                          bbs: 0
                          blockers: 1
                          boxtrapper: 1
                          changemx: 1
                          chat: 0
                          defaultaddress: 1
                          email_disk_usage: 1
                          emailarchive: 1
                          emailauth: 1
                          emaildomainfwd: 1
                          emailtrace: 1
                          popaccts: 1
                          spamassassin: 1
                          spambox: 1
                          traceaddy: 1
                          updatecontact: 1
                          webmail: 1
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's features
      tags:
        - Features
        - cPanel Features
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Features \
              list_features
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Features/list_features
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Features_list_features.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Features_list_features.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Features/,
                q/list_features/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Features_list_features.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Features_list_features.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Features',
                'list_features'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Features/list_features_like:
    get:
      description: >-
        This function allows you to search for enabled cPanel account features
        and lists those features

        in the returned payload.
      operationId: list_features_like
      parameters:
        - description: >-
            The feature's name that you wish to search.


            **Note:**


            To use a regular expression, you must set the `is_regex` parameter's
            value to `true`.
          in: query
          name: pattern
          required: true
          schema:
            example: mail
            type: string
        - description: >-
            Whether the `pattern` parameter's value is a regular expression.

            *  `1` - The `pattern` parameter's value is a regular expression.

            *  `0` - The `pattern` parameter's value is **not** a regular
            expression
          in: query
          name: is_regex
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              examples:
                string-pattern-match:
                  summary: Partial string pattern matching multiple enabled features
                  value:
                    result:
                      data:
                        - webmail
                        - emailauth
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
                regex-pattern-match:
                  summary: Regular expression pattern matching with anchors
                  value:
                    result:
                      data:
                        - sslmanager
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
                no-matches:
                  summary: No enabled features match the pattern
                  value:
                    result:
                      data: []
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
                missing-pattern:
                  summary: Pattern parameter is required
                  value:
                    result:
                      data: null
                      errors:
                        - '"pattern" is required'
                      messages: null
                      metadata: {}
                      status: 0
                      warnings: null
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_features_like
                    type: string
                  module:
                    description: The name of the module called.
                    example: Features
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          A list of enabled feature names that match the search
                          pattern.


                          **Note:**


                          The function only returns enabled features.
                        example:
                          - webmail
                          - emailauth
                        items:
                          type: string
                        nullable: true
                        type: array
                      errors:
                        description: >-
                          List of errors if the API failed.


                          Common errors include missing pattern parameter or
                          invalid regular expression syntax.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          Whether the API call was successful.

                          * `1` - Success. Features were searched and results
                          returned.

                          * `0` - Failed. Check the `errors` field for details
                          (e.g., missing pattern).
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return queried cPanel account features
      tags:
        - Features
        - cPanel Features
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Features \
              list_features_like \
              pattern='mail'
        - label: CLI (Regex)
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Features \
              list_features_like \
              pattern='^ssl.*' \
              is_regex=1
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Features/list_features_like?pattern=mail
        - label: URL (Regex)
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Features/list_features_like?pattern=%5Essl.*&is_regex=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Features_list_features_like.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Features_list_features_like.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Features/,
                q/list_features_like/,
                {
                    'pattern' => 'mail',
                    'is_regex' => 0,
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Features_list_features_like.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Features_list_features_like.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Features',
                'list_features_like',
                array (
                    'pattern' => 'mail',
                    'is_regex' => 0,
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.130
  /Fileman/autocompletedir:
    get:
      description: >-
        This function returns any files and directories that begin with a
        specified string.


        **Important:**

          When you disable the [File Storage role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: autocompletedir
      parameters:
        - description: The prefix of the paths to complete.
          in: query
          name: path
          required: true
          schema:
            example: public
            type: string
        - description: |-
            Whether to include only directories in the output.
            * `1` — **Only** include directories.
            * `0` — Include directories **and** files.
          in: query
          name: dirsonly
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            type: integer
        - description: |-
            Whether to return HTML-encoded results.
            * `1` — Return HTML-encoded output.
            * `0` — Return plaintext output.
          in: query
          name: html
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            Whether to return all files and directories inside the specified

            directory. If you set this parameter's value to `1`, you **must**
            set the `path`

            parameter's value to a full directory path.

            * `1` — Return **all** files and directories inside the specified
            directory.

            * `0` — Return partial file and directory name matches.
          in: query
          name: list_all
          required: false
          schema:
            default: 1
            enum:
              - 1
              - 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: autocompletedir
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing the files and
                          directories that match the specified path.
                        items:
                          properties:
                            file:
                              description: >-
                                A file or directory that matches the specified
                                path.
                              example: public_ftp
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return autocomplete file and directory names
      tags:
        - Fileman
        - Manage Files
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Fileman \
              autocompletedir \
              path='public'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Fileman/autocompletedir?path=public
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Fileman_autocompletedir.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Fileman_autocompletedir.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Fileman/,
                q/autocompletedir/,
                {
                    'path' => 'public',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Fileman_autocompletedir.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Fileman_autocompletedir.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Fileman',
                'autocompletedir',
                array (
                    'path' => 'public',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Fileman/empty_trash:
    get:
      description: >-
        This function purges content from the `.trash` folder in the user's home
        directory.


        **Important:**

          When you disable the [FileStorage role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles), the system **disables** this function.
      operationId: empty_trash
      parameters:
        - description: >-
            The maximum age in days of content that the function will not purge.


            **Note:**


            A value of `0` will purge everything from the user's `.trash`
            folder.
          in: query
          name: older_than
          required: false
          schema:
            default: 0
            example: 31
            minimum: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: empty_trash
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        example: null
                        nullable: true
                        properties: {}
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete .trash folder content
      tags:
        - Fileman
        - Manage Files
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Fileman \
              empty_trash
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Fileman/empty_trash
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Fileman_empty_trash.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Fileman_empty_trash.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Fileman/,
                q/empty_trash/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Fileman_empty_trash.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Fileman_empty_trash.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Fileman',
                'empty_trash'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 60
  /Fileman/get_file_content:
    get:
      description: >-
        This function retrieves a file's content.


        **Important:**


        When you disable the [File Storage](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.


        **Note:**


        JSON strings **must** be valid UTF-8. To retrieve a non-UTF-8 file via

        JSON, we recommend that you give `ISO-8859-1` as `from_charset` and

        `UTF-8` as `to_charset`, then decode the return payload’s `content`

        as UTF-8.
      operationId: get_file_content
      parameters:
        - description: The file path to the directory that contains the selected file.
          in: query
          name: dir
          required: true
          schema:
            example: /home/user/public.html
            format: path
            type: string
        - description: The file to retrieve.
          in: query
          name: file
          required: true
          schema:
            example: example.html
            type: string
        - description: "The file’s character encoding. This parameter defaults to\_`_DETECT_`, which indicates a request to detect the file’s character encoding."
          in: query
          name: from_charset
          required: false
          schema:
            default: _DETECT_
            example: _DETECT_
            type: string
        - description: "The output character encoding. This parameter defaults to\_`_LOCALE_`, which indicates a request to use the session locale’s character encoding.\n\n**Important:**\n\nContexts that serialize the API response as JSON **require**\nthis value to be `utf-8` or `US-ASCII`. Behavior is **undefined**\nif the request indicates any other encoding."
          in: query
          name: to_charset
          required: false
          schema:
            default: _LOCALE_
            example: _LOCALE_
            type: string
        - description: |-
            Whether to update the file's HTML document encoding.

            * `1` — Update the file's HTML document encoding.
            * `0` — Don't update the file's HTML encoding.
          in: query
          name: update_html_document_encoding
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_file_content
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          content:
                            description: |-
                              The file's contents. A string value.

                              **Note:**

                              Behavior is **undefined** if the calling context
                              requires an encoding that conflicts with
                              the file contents. For example, if the file
                              contents are ISO-8859-1 but the context requires
                              UTF-8 (as is the case with JSON), the system may
                              apply an extra layer of UTF-8 encoding in order
                              to satisfy the request.
                            example: '`hi`'
                            format: binary
                            type: string
                          dir:
                            description: >-
                              The absolute path to the directory that contains
                              the selected file.
                            example: /home/user/public_html
                            format: path
                            type: string
                          filename:
                            description: The file's name.
                            example: example.html
                            type: string
                          from_char:
                            description: >-
                              The file's previous character encoding. If the
                              request’s `from_charset` was `_DETECT_`, this will
                              contain the detected encoding. Otherwise, it will
                              contain the request’s `from_charset` value.
                            example: UTF-8
                            type: string
                          from_charset: {}
                          path:
                            description: The absolute path to the file.
                            example: /home/user/public_html/example.html
                            format: path
                            type: string
                          to_char:
                            description: >-
                              The file's new character encoding. If the
                              request’s `from_charset` was `_LOCALE_`, this will
                              contain the locale’s encoding. Otherwise, it will
                              contain the request’s `to_charset` value.
                            example: UTF-8
                            type: string
                          to_charset: {}
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return file content
      tags:
        - Fileman
        - Manage Files
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Fileman \
              get_file_content \
              dir='/home/user/public_html' \
              file='example.html'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Fileman/get_file_content?dir=%2fhome%2fuser%2fpublic.html&file=example.html
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Fileman_get_file_content.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Fileman_get_file_content.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Fileman/,
                q/get_file_content/,
                {
                    'dir' => '/home/user/public.html',
                    'file' => 'example.html',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Fileman_get_file_content.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Fileman_get_file_content.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Fileman',
                'get_file_content',
                array (
                    'dir' => '/home/user/public.html',
                    'file' => 'example.html',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Fileman/get_file_information:
    get:
      description: >-
        This function returns the information for a specified file or directory.


        **Important:**


        When you disable the [File Storage](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: get_file_information
      parameters:
        - description: The directory from which to list files.
          in: query
          name: path
          required: true
          schema:
            example: public_html
            format: path
            type: string
        - description: |-
            Whether to flag directories that contain subdirectories.

            * `1` - Flag directories that contain subdirectories.
            * `0` - Do **not** flag directories that contain subdirectories.
          in: query
          name: check_for_leaf_directories
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to return the file's MIME type.

            * `1` - Return the file's MIME type.
            * `0` - Do **not** return the file's MIME type.
          in: query
          name: include_mime
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            Whether to parse the file owner's read and write permissions.


            * `1` - Parse the file owner's read and write permissions.

            * `0` - Do **not** parse the file owner's read and write
            permissions.
          in: query
          name: include_permissions
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to include hidden files in the output.

            * `1` - Include hidden files.
            * `0` - Do **not** include hidden files.
          in: query
          name: show_hidden
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_file_information
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          absdir:
                            description: The path to the user's home directory.
                            example: /home/user
                            format: path
                            type: string
                          ctime:
                            description: The file's creation time, Unix time format.
                            example: 1400573272
                            format: unix_timestamp
                            type: integer
                          exists:
                            description: |-
                              Whether the file exists in the directory.
                              * `1` - Exists.
                              * `0` - Does **not** exist.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          file:
                            description: The filename.
                            example: cgi-bin
                            type: string
                          fullpath:
                            description: The file's full filepath.
                            example: /home/user/public_html/cgi-bin
                            format: path
                            type: string
                          gid:
                            description: The file owner's system group ID.
                            example: 503
                            minimum: 1
                            type: integer
                          humansize:
                            description: >-
                              The file's formatted size, followed by one of the
                              following symbols:

                              * `KB` - kilobytes

                              * `MB` - megabytes

                              * `GB` - gigabytes
                            example: 5 KB
                            type: string
                          isleaf:
                            description: |-
                              Whether the directory contains subdirectories.
                              * `1` - Contains subdirectories.
                              * `0` - Does **not** contain subdirectories.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          mimename:
                            description: The file's MIME name.
                            example: publichtml
                            type: string
                          mimetype:
                            description: The file's MIME type.
                            example: text/plain
                            format: MIME
                            type: string
                          mode:
                            description: >-
                              The file's textual permissions in [Unix
                              format](https://en.wikipedia.org/wiki/File-system_permissions#Notation_of_traditional_Unix_permissions).
                            example: '16872'
                            type: string
                          mtime:
                            description: >-
                              The file's last modification time, in Unix time
                              format.
                            example: 1400573272
                            format: unix_timestamp
                            type: integer
                          nicemode:
                            description: >-
                              The file's numerical permissions in [octal
                              notation](https://en.wikipedia.org/wiki/File-system_permissions#Notation_of_traditional_Unix_permissions).
                            example: 755
                            type: integer
                          path:
                            description: The file's path.
                            example: /home/user/public.html
                            format: path
                            type: string
                          rawmimename:
                            description: The file's raw MIME name.
                            example: text/plain
                            format: MIME
                            type: string
                          rawmimetype:
                            description: The file's raw MIME type.
                            example: text/plain
                            format: MIME
                            type: string
                          read:
                            description: >-
                              Whether the file is readable. The function only
                              returns this value if you set the
                              `include_permissions` value to 1.

                              * `1` - Readable.

                              * `0` - **Not** readable.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          size:
                            description: The file's size, in bytes.
                            example: 4096
                            minimum: 1
                            type: integer
                          type:
                            description: |-
                              The item's type.
                              * `file` - File.
                              * `dir` - Directory.
                              * `char` - Character special device.
                              * `block` - Block special device.
                              * `fifo` - Named pipe.
                              * `link` - Symbolic link.
                              * `socket` - Unix domain socket.
                            enum:
                              - file
                              - dir
                              - char
                              - block
                              - fifo
                              - link
                              - socket
                            example: file
                            type: string
                          uid:
                            description: The file owner's system user ID.
                            example: 502
                            minimum: 1
                            type: integer
                          write:
                            description: >-
                              Whether the file is writable. The function only
                              returns this value if you set the
                              `include_permissions` value to 1 .

                              * `1` - Writable.

                              * `0` - Not writable.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return file or directory information
      tags:
        - Fileman
        - Manage Files
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Fileman \
              get_file_information \
              path='public_html'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Fileman/get_file_information?path=public_html
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Fileman_get_file_information.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Fileman_get_file_information.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Fileman/,
                q/get_file_information/,
                {
                    'path' => 'public_html',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Fileman_get_file_information.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Fileman_get_file_information.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Fileman',
                'get_file_information',
                array (
                    'path' => 'public_html',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Fileman/list_files:
    get:
      description: >-
        This function returns a sorted list of files and directories.


        **Important:**


        When you disable the [FileStorage
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function. For more information, read our How to Use
        Server Profiles documentation.
      operationId: list_files
      parameters:
        - description: The directory from which to list files.
          in: query
          name: dir
          required: true
          schema:
            example: public_html
            type: string
        - description: |-
            Whether to return directories that contain subdirectories.

            * `1` — Return subdirectories.
            * `0` — Do **not** retain subdirectories.
          in: query
          name: check_for_leaf_directories
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to return the file's MIME type.

            * `1` — Include MIME type.
            * `0` — Do **not** include MIME type.

            **Note:**

             If you set this value to `0` but also include the `mime_types` or `raw_mime_types` parameters, the function **overrides** your specified value and sets this parameter to `1`.
          in: query
          name: include_mime
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to parse the file owner's read and write permissions.

            * `1` — Parse file permissions.
            * `0` — Do **not** parse file permissions.
          in: query
          name: include_permissions
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: "Whether to return only entries that begin with\_the `filepath-` prefix.\n\n* `1` — Return only files that begin with the `filepath-` prefix.\n* `0` — Return **all** files.\n\nIf you do not use this parameter, the function returns all filenames."
          in: query
          name: limit_to_list
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The MIME types to return.


            * If you use this parameter, the function returns the specified MIME
            types

            and sets the `include_mime` parameter's value to `1`.

            * If you do **not** use this parameter, the function returns all
            MIME types.
          in: query
          name: mime_types
          required: false
          schema:
            example: text-plain
            type: string
        - description: |-
            A comma-separated list of files to return.

            If you do not use this parameter, the function returns all files.
          in: query
          name: only_these_files
          required: false
          schema:
            example: cpbackup-exclude.conf
            type: string
        - description: >-
            The raw MIME types to return.


            * If you use this parameter, the function returns the specified MIME
            types

            and sets the `include_mime` parameter's value to `1`.

            * If you do **not** use this parameter, the function returns all
            MIME types.
          in: query
          name: raw_mime_types
          required: false
          schema:
            example: text/plain
            type: string
        - description: |-
            Whether to include hidden files in the output.

            * `1` — Include hidden files.
            * `0` — Do **not** include hidden files.
          in: query
          name: show_hidden
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            A pipe-separated list of file types to return.


            * `file` — A file.

            * `dir` — A directory.

            * `char` — A character special device.

            * `block` — A block special device.

            * `fifo` — A named pipe (FIFO).

            * `link` — A symbolic link.

            * `socket` — A Unix domain socket.


            If you do not use this parameter, the function returns all file
            types.
          explode: false
          in: query
          name: types
          required: false
          schema:
            items:
              example: file|dir
              type: string
            type: array
          style: pipeDelimited
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_files
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          dirs:
                            description: >-
                              An array of objects containing information about
                              each directory.
                            items:
                              properties:
                                absdir:
                                  description: The file path to the user's home directory.
                                  example: /home/user
                                  format: path
                                  type: string
                                ctime:
                                  description: The directory's creation date.
                                  example: 1400573272
                                  format: unix_timestamp
                                  type: integer
                                exists:
                                  description: >-
                                    Whether the directory exists in the
                                    directory.


                                    * `1` — Exists.

                                    * `0` — Does **not** exist.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                file:
                                  description: The directory name.
                                  example: cgi-bin
                                  type: string
                                fullpath:
                                  description: The directory's full directory path.
                                  example: /home/user/public_html/cgi-bin
                                  format: path
                                  type: string
                                gid:
                                  description: The directory owner's system group ID.
                                  example: 503
                                  minimum: 1
                                  type: integer
                                humansize:
                                  description: >-
                                    The formatted size of the directory. The
                                    function returns the size with

                                    one of the following symbols:


                                    * `KB` — Kilobytes.

                                    * `MB` — Megabytes.

                                    * `GB` — Gigabytes.
                                  example: 5 KB
                                  type: string
                                isleaf:
                                  description: >-
                                    Whether the directory contains
                                    subdirectories.


                                    * `1` — Contains subdirectories.

                                    * `0` — Does **not** contain subdirectories.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                isparent:
                                  description: |-
                                    Whether the directory is a parent record.

                                    * `1` — A parent record.
                                    * `0` — **Not** a parent record.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                mimename:
                                  description: The MIME type's name.
                                  example: text-plain
                                  type: string
                                mimetype:
                                  description: The directory's MIME's type.
                                  example: text/plain
                                  type: string
                                mode:
                                  description: >-
                                    The directory's textual permissions in [Unix
                                    format](http://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions).
                                  example: '16877'
                                  format: unix-file-permission
                                  type: string
                                mtime:
                                  description: The directory's last modification time.
                                  example: 1400573272
                                  format: unix_timestamp
                                  type: integer
                                nicemode:
                                  description: The directory's numerical permissions.
                                  example: 755
                                  format: unix-file-permission
                                  type: integer
                                path:
                                  description: The path to the directory.
                                  example: /home/user/public.html
                                  format: path
                                  type: string
                                rawmimename:
                                  description: The directory's raw MIME type's name.
                                  example: text-plain
                                  type: string
                                rawmimetype:
                                  description: The directory's raw MIME type.
                                  example: text/plain
                                  type: string
                                read:
                                  description: >-
                                    Whether the directory is readable.


                                    * `1` — Readable.

                                    * `0` — **Not** readable.


                                    **Note:**


                                    The function only returns this value if the
                                    `include_permissions` value is `1`.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                size:
                                  description: The directory's size, in bytes.
                                  example: 4096
                                  minimum: 1
                                  type: integer
                                type:
                                  description: |-
                                    The item's type.

                                    * `file` — A file.
                                    * `dir` — A directory.
                                    * `char` — A character special device.
                                    * `block` — A block special device.
                                    * `fifo` - A named pipe (FIFO).
                                    * `link` — A symbolic link.
                                    * `socket` — A Unix domain socket.
                                  enum:
                                    - file
                                    - dir
                                    - char
                                    - block
                                    - fifo
                                    - link
                                    - socket
                                  example: file
                                  type: string
                                uid:
                                  description: The directory owner's system user ID.
                                  example: 502
                                  minimum: 1
                                  type: integer
                                write:
                                  description: >-
                                    Whether the directory is writable.


                                    * `1` — Writable.

                                    * `0` — **Not** writable.


                                    **Note:**


                                    The function only returns this value if the
                                    `include_permissions` value is `1`.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                              type: object
                            type: array
                          files:
                            description: >-
                              An array of objects containing information about
                              each file.
                            items:
                              properties:
                                absdir:
                                  description: The file path to the user's home directory.
                                  example: /home/user
                                  format: path
                                  type: string
                                ctime:
                                  description: The file's creation time.
                                  example: 1400573272
                                  format: unix_timestamp
                                  type: integer
                                exists:
                                  description: |-
                                    Whether the file exists in the directory.

                                    * `1` — Exists.
                                    * `0` — Does **not** exist.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                file:
                                  description: The filename.
                                  example: cgi-bin
                                  type: string
                                fullpath:
                                  description: The file's full file path.
                                  example: /home/user/public_html/cgi-bin
                                  format: path
                                  type: string
                                gid:
                                  description: The file owner's system group ID.
                                  example: 503
                                  minimum: 1
                                  type: integer
                                humansize:
                                  description: >-
                                    The formatted size of the file. The function
                                    returns the size with

                                    one of the following symbols:


                                    * `KB` — Kilobytes.

                                    * `MB` — Megabytes.

                                    * `GB` — Gigabytes.
                                  example: 5 KB
                                  type: string
                                isleaf:
                                  description: >-
                                    Whether the directory contains
                                    subdirectories.


                                    * `1` — Contains subdirectories.

                                    * `0` — Does **not** contain subdirectories.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                isparent:
                                  description: |-
                                    Whether the file is a parent record.

                                    * `1` — A parent record.
                                    * `0` — **Not** a parent record.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                mimename:
                                  description: The file's MIME type name.
                                  example: text-plain
                                  type: string
                                mimetype:
                                  description: The file's MIME type.
                                  example: text/plain
                                  type: string
                                mode:
                                  description: The file's textual permissions.
                                  example: '16877'
                                  format: unix-file-permission
                                  type: string
                                mtime:
                                  description: The file's last modification time.
                                  example: 1400573272
                                  format: unix_timestamp
                                  type: integer
                                nicemode:
                                  description: The file's numerical permissions.
                                  example: 755
                                  format: unix-file-permission
                                  type: integer
                                path:
                                  description: The absolute path to the file.
                                  example: /home/user/public.html
                                  format: path
                                  type: string
                                rawmimename:
                                  description: The file's raw MIME type's name.
                                  example: text-plain
                                  type: string
                                rawmimetype:
                                  description: The file's raw MIME type.
                                  example: text/plain
                                  type: string
                                read:
                                  description: >-
                                    Whether the file is readable.


                                    * `1` — Readable.

                                    * `0` — **Not** readable.


                                    **Note:**


                                    The function only returns this value if the
                                    `include_permissions` value is `1`.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                size:
                                  description: The file's size, in bytes.
                                  example: 4096
                                  minimum: 1
                                  type: integer
                                type:
                                  description: |-
                                    The item's type.

                                    * `file` — A file.
                                    * `dir` — A directory.
                                    * `char` — A character special device.
                                    * `block` — A block special device.
                                    * `fifo` - A named pipe (FIFO).
                                    * `link` — A symbolic link.
                                    * `socket` — A Unix domain socket.
                                  enum:
                                    - file
                                    - dir
                                    - char
                                    - block
                                    - fifo
                                    - link
                                    - socket
                                  example: file
                                  type: string
                                uid:
                                  description: The file owner's system user ID.
                                  example: 502
                                  minimum: 1
                                  type: integer
                                write:
                                  description: >-
                                    Whether the file is writable.


                                    * `1` — Writable.

                                    * `0` — **Not** writable.


                                    **Note:**


                                    The function only returns this value if the
                                    `include_permissions` value is `1`.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success

                          * `0` — Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return directory content
      tags:
        - Fileman
        - Manage Files
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Fileman \
              list_files \
              dir='public_html'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Fileman/list_files?dir=public_html
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Fileman_list_files.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Fileman_list_files.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Fileman/,
                q/list_files/,
                {
                    'dir' => 'public_html',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Fileman_list_files.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Fileman_list_files.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Fileman',
                'list_files',
                array (
                    'dir' => 'public_html',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Fileman/save_file_content:
    get:
      description: >-
        This function saves a file in a directory and encodes it in a character
        set.


        **Important:**

          When you disable the [File Storage role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: save_file_content
      parameters:
        - description: The files to retrieve.
          in: query
          name: file
          required: true
          schema:
            example: example.html
            type: string
        - description: >-
            The new file's contents. If you do **not** use this parameter, the
            function creates a blank file.
          in: query
          name: content
          required: false
          schema:
            example: hi
            type: string
        - description: >-
            The directory that contains the selected file.


            **Note:**


            This parameter defaults to the currently-authenticated user's
            `/home` directory.
          in: query
          name: dir
          required: false
          schema:
            example: /home/username/public_html
            format: path
            type: string
        - description: |-
            Whether the function will return an error or save in the default
            character set if it cannot save in the specified character set.

            * `1` — Save in the default character set.
            * `0` — Return an error.
          in: query
          name: fallback
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The [character set
            encoding](https://en.wikipedia.org/wiki/Character_encoding) of the
            `content` parameter's value.
          in: query
          name: from_charset
          required: false
          schema:
            default: UTF-8
            example: UTF-8
            type: string
        - description: >-
            The [character set
            encoding](https://en.wikipedia.org/wiki/Character_encoding) in which
            to encode the file.
          in: query
          name: to_charset
          required: false
          schema:
            default: UTF-8
            example: ASCII
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: save_file_content
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          from_charset:
                            description: The file's character set.
                            example: UTF-8
                            type: string
                          path:
                            description: The path to the file.
                            example: /home/user/public_html/example.html
                            format: path
                            type: string
                          to_charset:
                            description: The file's new character set.
                            example: ASCII
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Save file
      tags:
        - Fileman
        - Manage Files
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Fileman \
              save_file_content \
              file='example.html'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Fileman/save_file_content?file=example.html
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Fileman_save_file_content.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Fileman_save_file_content.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Fileman/,
                q/save_file_content/,
                {
                    'file' => 'example.html',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Fileman_save_file_content.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Fileman_save_file_content.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Fileman',
                'save_file_content',
                array (
                    'file' => 'example.html',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Fileman/transcode:
    get:
      description: |-
        This function converts a buffer from one encoding language to another.

        **Important:**

          When you disable the [File Storage role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: transcode
      parameters:
        - description: The file's contents.
          in: query
          name: content
          required: true
          schema:
            example: hi
            type: string
        - description: |-
            Whether to discard any characters that do not transcode correctly.
              * `1` - Discard invalid characters.
              * `0` - Transcode invalid characters in the default [character set encoding](https://en.wikipedia.org/wiki/Character_encoding).
          in: query
          name: discard_illegal
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The file's current [character set
            encoding](https://en.wikipedia.org/wiki/Character_encoding).
          in: query
          name: from_charset
          required: false
          schema:
            example: UTF-8
            type: string
        - description: "The\_[character set encoding](https://en.wikipedia.org/wiki/Character_encoding) in which to encode the file."
          in: query
          name: to_charset
          required: false
          schema:
            example: ASCII
            type: string
        - description: >-
            Whether to transcode invalid characters to valid characters in the
            new character set encoding.
              * `1` - Transcode invalid characters in the new [character set encoding](https://en.wikipedia.org/wiki/Character_encoding).
              * `0` - Return an error message.
          in: query
          name: transliterate
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: transcode
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          charset:
                            description: The file's new character set.
                            example: ASCII
                            type: string
                          content:
                            description: The file's content.
                            example: hi
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update buffer encoding
      tags:
        - Fileman
        - Manage Files
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Fileman \
              transcode \
              content='hi'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Fileman/transcode?content=hi
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Fileman_transcode.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Fileman_transcode.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Fileman/,
                q/transcode/,
                {
                    'content' => 'hi',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Fileman_transcode.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Fileman_transcode.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Fileman',
                'transcode',
                array (
                    'content' => 'hi',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Fileman/upload_files:
    get:
      description: >-
        This function uploads files.


        **Note:**

          For more information about how to use this function in your custom code,
          read our [Use UAPI's `Fileman::upload_files` 
          Function in Custom Code tutorial](https://go.cpanel.net/tutorial-use-uapis-fileman-upload-files-function-in-custom-code). 

        **Important:**

         When you disable the [File Storage](https://go.cpanel.net/serverroles) role, the system **disables** this function.

        You cannot call this function through WHM API 1's
        [uapi_cpanel](https://go.cpanel.net/UseWHMAPItoCallcPanelAPIandUAPI)
        function.
      operationId: upload_files
      summary: Upload files
      tags:
        - Fileman
        - Manage Files
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: upload_files
                    type: string
                  module:
                    description: The name of the module called.
                    example: Fileman
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          content:
                            description: ''
                            example: ''
                            format: binary
                            type: string
                          filename:
                            description: The file's name.
                            example: example.png
                            type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            To implement Fileman::upload_files, read our Use UAPI's
            `Fileman::upload_files` Function in Custom Code tutorial.
        - label: URL
          lang: HTTP
          source: >-
            To implement Fileman::upload_files, read our Use UAPI's
            `Fileman::upload_files` Function in Custom Code tutorial.
        - label: LiveAPI Perl
          lang: Perl
          source: >-
            To implement Fileman::upload_files, read our Use UAPI's
            `Fileman::upload_files` Function in Custom Code tutorial.
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            To implement Fileman::upload_files, read our Use UAPI's
            `Fileman::upload_files` Function in Custom Code tutorial.
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Ftp/add_ftp:
    get:
      description: >-
        This function creates an FTP account.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: add_ftp
      parameters:
        - description: The new FTP account username.
          in: query
          name: user
          required: true
          schema:
            example: username
            type: string
        - description: |-
            Whether to strip dots (`.`) from the username.

            * `1` — Strip dots.
            * `0` — Do **not** strip dots.
          in: query
          name: disallowdot
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: "The FTP user's associated domain. This must be a domain that the cPanel account owns.\n\n**Note:**\n\nThis parameter defaults to the\_cPanel account's primary domain."
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The path to the FTP account's root directory, relative to the cPanel
            account's home directory. If you don't set this, it defaults to a
            directory with the same name as the FTP account.
          in: query
          name: homedir
          required: false
          schema:
            example: exampleftp
            format: path
            type: string
        - description: >-
            The new FTP account password.


            **Note:**


            You can use the `pass_hash` parameter in place of this parameter.
            However, you **cannot** use both the `pass` and `pass_hash`
            parameters in the same request.
          in: query
          name: pass
          required: false
          schema:
            example: 123456luggage
            type: string
        - description: >-
            The account's password hash.


            **Note:**


            * You can use this parameter in place of the `pass` parameter.
            However, you **cannot** use both the `pass` and `pass_hash`
            parameters in the same request.

            * You can find your server's password hash type in the
            `/etc/sysconfig/authconfig` file.
          in: query
          name: pass_hash
          required: false
          schema:
            default: ''
            example: >-
              $6$1sOyHP5ZDYp3pGUz$R0TSgfPRHfDjT5PP5RJGv39FhiGTNNPvM7IFpCBjXijMmlMZk9yI8T3LqGuntc9fdKb5eX.lGL7wBS9e4DAWn/
            type: string
        - description: |-
            The FTP account's maximum disk usage quota, in megabytes (MB).

            **Note:**

            A value of `0` grants the FTP account unlimited disk space.
          in: query
          name: quota
          required: false
          schema:
            default: 0
            example: 42
            minimum: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_ftp
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        enum:
                          - null
                        example: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create FTP account
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              add_ftp \
              user='username2' \
              pass='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/add_ftp?user=username
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_add_ftp.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to .../frontend/<theme-name>/api_examples/Ftp_add_ftp.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/add_ftp/,
                {
                    'user' => 'username',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_add_ftp.live.php and put this code into that
            file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to .../frontend/<theme-name>/api_examples/Ftp_add_ftp.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'add_ftp',
                array (
                    'user' => 'username',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/allows_anonymous_ftp:
    get:
      description: >-
        This function checks whether the account allows anonymous FTP
        connections.


        **Important:**


        When you disable the [*FTP* role](https://go.cpanel.net/serverroles),
        the system **disables** this function.
      operationId: allows_anonymous_ftp
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: allows_anonymous_ftp
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          allows:
                            description: >-
                              Whether the cPanel account allows anonymous FTP
                              connections.

                              * `1` - Allowed.

                              * `0` - **Not** allowed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return if anonymous FTP connections allowed
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              allows_anonymous_ftp
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/allows_anonymous_ftp
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_allows_anonymous_ftp.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_allows_anonymous_ftp.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/allows_anonymous_ftp/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_allows_anonymous_ftp.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_allows_anonymous_ftp.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'allows_anonymous_ftp'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/allows_anonymous_ftp_incoming:
    get:
      description: >-
        This function checks whether the account allows inbound anonymous FTP
        transfers.


        **Important:**

          When you disable the [*FTP* role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: allows_anonymous_ftp_incoming
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: allows_anonymous_ftp_incoming
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          allows:
                            description: >-
                              Whether the cPanel account allows inbound
                              anonymous FTP transfers.

                              * `1` - Allowed.

                              * `0` - Not allowed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return if anonymous FTP transfers allowed
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              allows_anonymous_ftp_incoming
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/allows_anonymous_ftp_incoming
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_allows_anonymous_ftp_incoming.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_allows_anonymous_ftp_incoming.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/allows_anonymous_ftp_incoming/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_allows_anonymous_ftp_incoming.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_allows_anonymous_ftp_incoming.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'allows_anonymous_ftp_incoming'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/delete_ftp:
    get:
      description: >-
        This function deletes an FTP account.


        **Important:**


        When you disable the [*FTP* role](https://go.cpanel.net/serverroles),
        the system **disables** this function.
      operationId: delete_ftp
      parameters:
        - description: The FTP account's username.
          in: query
          name: user
          required: true
          schema:
            example: username
            type: string
        - description: |-
            Whether to delete the FTP account's home directory.

            * `1` — Delete the home directory.
            * `0` — Do **not** delete the home directory.
          in: query
          name: destroy
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            The user's associated domain.

            **Note:**

            This parameter defaults to the cPanel account's primary domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_ftp
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete FTP account
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              delete_ftp \
              user='username2'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/delete_ftp?user=username
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_delete_ftp.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_delete_ftp.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/delete_ftp/,
                {
                    'user' => 'username',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_delete_ftp.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_delete_ftp.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'delete_ftp',
                array (
                    'user' => 'username',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/ftp_exists:
    get:
      description: >-
        This function checks whether an FTP account exists.


        **Note:**


        This function returns only metadata if the FTP account exists, or an
        error if the FTP account does **not** exist.
      operationId: ftp_exists
      parameters:
        - description: The FTP account's username.
          in: query
          name: user
          required: true
          schema:
            example: us_chickens
            type: string
        - description: |-
            The user's associated domain.

            **Note:**

            This parameter defaults to the cPanel account's primary domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: ftp_exists
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Return whether an FTP account exists
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              ftp_exists \
              user='us_chickens'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/ftp_exists?user=us_chickens
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_ftp_exists.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_ftp_exists.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/ftp_exists/,
                {
                    'user' => 'us_chickens',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_ftp_exists.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_ftp_exists.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'ftp_exists',
                array (
                    'user' => 'us_chickens',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/get_ftp_daemon_info:
    get:
      description: >-
        This function retrieves the extended information about the server's FTP
        daemon.
      operationId: get_ftp_daemon_info
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_ftp_daemon_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            description: |-
                              Whether the server's FTP daemon is enabled.

                              * `1` – Enabled.
                              * `0` – Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          name:
                            description: |-
                              The FTP server's name.

                              * `pure-ftpd`
                              * `proftpd`
                              * An empty string.
                            enum:
                              - pure-ftpd
                              - proftpd
                              - ''
                            example: pure-ftpd
                            type: string
                          supports:
                            description: >-
                              This object contains the features that the FTP
                              daemon supports.
                            properties:
                              login_without_domain:
                                description: >-
                                  Whether the FTP daemon supports username
                                  authentication without the user's domain.


                                  * `1` – Supported.

                                  * `0` – **Not** supported.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              quota:
                                description: |-
                                  Whether the FTP daemon supports disk quotas.

                                  * `1` – Supported.
                                  * `0` – **Not** supported.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return FTP server's information
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              get_ftp_daemon_info
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/get_ftp_daemon_info
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_get_ftp_daemon_info.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_get_ftp_daemon_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/get_ftp_daemon_info/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_get_ftp_daemon_info.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_get_ftp_daemon_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'get_ftp_daemon_info'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Ftp/get_port:
    get:
      description: |-
        This function returns the FTP port.

        **Important:**

          When you disable the [*FTP* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: get_port
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_port
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          port:
                            description: The FTP port.
                            example: 21
                            maximum: 65335
                            minimum: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return FTP server's port
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              get_port
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/get_port
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_get_port.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to .../frontend/<theme-name>/api_examples/Ftp_get_port.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/get_port/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_get_port.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_get_port.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'get_port'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/get_quota:
    get:
      description: |-
        This function checks an FTP account's quota.

        **Important:**

          When you disable the [_FTP role_](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: get_quota
      parameters:
        - description: The FTP account's username.
          in: query
          name: account
          required: true
          schema:
            example: user1
            type: string
        - description: |-
            The user's associated domain.

            **Note:**

            This parameter defaults to the cPanel account's primary domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_quota
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The FTP account's quota.

                          * `unlimited`

                          * A positive integer that represents the maximum
                          amount of disk space that the FTP account can use, in
                          megabytes (MB).
                        example: unlimited
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return FTP account's quota
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              get_quota \
              account='user1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/get_quota?account=user1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_get_quota.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to .../frontend/<theme-name>/api_examples/Ftp_get_quota.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/get_quota/,
                {
                    'account' => 'user1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_get_quota.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_get_quota.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'get_quota',
                array (
                    'account' => 'user1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/get_welcome_message:
    get:
      description: |-
        This function retrieves the cPanel account's FTP welcome message.

        **Important:**

          When you disable the [*FTP* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: get_welcome_message
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_welcome_message
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        description: The cPanel account's FTP welcome message.
                        example: Greetings, Professor Falken.
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return FTP account's welcome message
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              get_welcome_message
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/get_welcome_message
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_get_welcome_message.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_get_welcome_message.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/get_welcome_message/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_get_welcome_message.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_get_welcome_message.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'get_welcome_message'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/kill_session:
    get:
      description: |-
        This function kills FTP sessions.

        **Important:**

          When you disable the [*FTP* Role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: kill_session
      parameters:
        - description: |-
            The username for the session's FTP account.

            **Note:**

              To stop all FTP sessions for the cPanel account, set this parameter to the `all` value.
          in: query
          name: login
          required: false
          schema:
            default: all
            example: weeones
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: kill_session
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Stop FTP session
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              kill_session
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/kill_session
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_kill_session.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_kill_session.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/kill_session/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_kill_session.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_kill_session.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'kill_session'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/list_ftp:
    get:
      description: >-
        This function lists FTP account information.


        **Important:**


        When you disable the [*FTP*
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function. For more information, read our How to Use
        Server Profiles documentation.
      operationId: list_ftp
      parameters:
        - description: >-
            A list of the FTP account types to include in the function's
            results.


            * `anonymous`

            * `logaccess`

            * `main`

            * `sub`


            If you do not specify this parameter, this function returns all FTP
            account

            types.


            **Note:**


            * Separate multiple types with the pipe character (`|`).

            * In browser-based calls, use `%7C`.
          in: query
          name: include_acct_types
          required: false
          schema:
            example: main|anonymous
            type: string
        - description: >-
            A list of the FTP account types to exclude from the function's

            results.


            * `anonymous`

            * `logaccess`

            * `main`

            * `sub`


            If you do not specify this parameter, this function does **not**
            exclude

            any account types.


            **Note:**


            * Separate multiple types with the pipe character (`|`).

            * In browser-based calls, use `%7C`.
          in: query
          name: skip_acct_types
          required: false
          schema:
            example: main|anonymous
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_ftp
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            homedir:
                              description: >-
                                The absolute path to the FTP account's document
                                root.
                              example: /home/user/public_html/ftp/
                              format: path
                              type: string
                            type:
                              description: |-
                                The type of FTP account.

                                * `anonymous`
                                * `logaccess`
                                * `main`
                                * `sub`
                              enum:
                                - anonymous
                                - logaccess
                                - main
                                - sub
                              example: main
                              type: string
                            user:
                              description: >-
                                The username for an FTP account on the cPanel
                                account.
                              example: ftpaccount
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return FTP accounts
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              list_ftp
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/list_ftp
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_list_ftp.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to .../frontend/<theme-name>/api_examples/Ftp_list_ftp.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/list_ftp/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_list_ftp.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_list_ftp.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'list_ftp'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/list_ftp_with_disk:
    get:
      description: >-
        This function lists FTP account and disk usage information.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: list_ftp_with_disk
      parameters:
        - description: >-
            A pipe-delimited list of the FTP account types to include in the
            function's results.

            If you do not specify this parameter, the function returns all FTP
            account types.


            Valid types for this list are:


            * `anonymous`

            * `logaccess`

            * `main`

            * `sub`
          in: query
          name: include_acct_types
          required: false
          schema:
            example: main|anonymous
            type: string
        - description: >-
            A pipe-delimited list of the FTP account types to exclude from the
            function's

            results. If you do not specify this parameter, the function does
            **not** exclude

            any account types.


            Valid types for this list are:


            * `anonymous`

            * `logaccess`

            * `main`

            * `sub`
          in: query
          name: skip_acct_types
          required: false
          schema:
            example: main|anonymous
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_ftp_with_disk
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            _diskquota:
                              description: >-
                                The FTP account's quota in megabytes, with two
                                digits of fractional precision,

                                encoded as a string. `0.00` means that the quota
                                is unlimited.


                                **Note:**


                                This value is different from the value for
                                `diskquota`.
                              example: '476.84'
                              format: ^\d+\.\d+$
                              type: string
                            _diskused:
                              description: >-
                                The amount of disk space in megabytes that the
                                account currently uses,

                                with two digits of fractional precision, encoded
                                as a string.


                                **Note:**


                                This value is the same as the value for
                                `diskused`.
                              example: '2.34'
                              format: ^\d+\.\d+$
                              type: string
                            accttype:
                              description: |-
                                The type of FTP account.

                                * `anonymous`
                                * `logaccess`
                                * `main`
                                * `sub`
                              enum:
                                - anonymous
                                - logaccess
                                - main
                                - sub
                              example: sub
                              type: string
                            deleteable:
                              description: >-
                                Whether the function's caller can delete the
                                account.


                                * `1` – The caller can delete the account.

                                * `0` – The caller **cannot** delete the
                                account.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            dir:
                              description: >-
                                The absolute path to the FTP account's document
                                root.
                              example: /home/user/public_ftp
                              type: string
                            diskquota:
                              description: >-
                                The FTP account's quota.


                                * `unlimited`

                                * The disk quota in megabytes, with two digits
                                of fractional precision, encoded as a string.


                                **Note:**


                                This value is different from the value for
                                `_diskquota`.
                              example: '476.84'
                              oneOf:
                                - enum:
                                    - unlimited
                                  type: string
                                - format: ^\d+\.\d+$
                                  type: string
                            diskused:
                              description: >-
                                The amount of disk space in megabytes that the
                                account currently uses,

                                with two digits of fractional precision, encoded
                                as a string.


                                **Note:**


                                This value is the same as the value for
                                `_diskused`.
                              example: '2.34'
                              format: ^\d+\.\d+$
                              type: string
                            diskusedpercent:
                              description: >-
                                The percentage of the disk space quota that the
                                account currently uses.
                              example: 21
                              type: integer
                            diskusedpercent20:
                              description: >-
                                The percentage of disk space that the account
                                currently uses, rounded in 20 percent
                                increments.
                              example: 20
                              maximum: 100
                              minimum: 0
                              multipleOf: 20
                              type: integer
                            htmldir:
                              description: The path to the FTP account's HTML directory.
                              example: null
                              nullable: true
                              type: string
                            humandiskquota:
                              description: >-
                                The FTP account's quota, in human-readable
                                format.


                                * `None` — The function returns this value if
                                the account has an unlimited quota.

                                * The quota in megabytes (MB), a space, and the
                                characters `MB`.
                              example: 477 MB
                              type: string
                            humandiskused:
                              description: >-
                                The amount of disk space that the account
                                currently uses, in

                                human-readable format. The function formats this
                                value as the

                                quota's size, a space, and the characters `MB`.
                              example: 2 MB
                              type: string
                            login:
                              description: The FTP account username.
                              example: ftpaccount
                              type: string
                            reldir:
                              description: |-
                                The path to the FTP account's document root,
                                relative to the cPanel account's home directory.
                              example: public_ftp
                              type: string
                            serverlogin:
                              description: The full FTP login username.
                              example: ftpaccount@example.com
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return FTP accounts and disk usage
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              list_ftp_with_disk
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/list_ftp_with_disk
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_list_ftp_with_disk.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_list_ftp_with_disk.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/list_ftp_with_disk/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_list_ftp_with_disk.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_list_ftp_with_disk.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'list_ftp_with_disk'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/list_sessions:
    get:
      description: |-
        This function lists the FTP server's active sessions.

        **Important:**

          When you disable the [FTP role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_sessions
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_sessions
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            cmdline:
                              description: >-
                                Information about the FTP process, from the `ps`
                                ([process status](http://www.linfo.org/ps.html))
                                command.
                              example: pure-ftpd (IDLE)
                              type: string
                            file:
                              description: >-
                                The file that the session is processing.


                                **Note:**


                                The function returns a blank value if the
                                session is idle.
                              example: ''
                              type: string
                            host:
                              description: >-
                                The IP address or hostname that connected to the
                                FTP server.
                              example: localhost
                              oneOf:
                                - format: ipv4
                                  type: string
                                - format: domain
                                  type: string
                            login:
                              description: The FTP session login time.
                              example: Tue Apr 23 16:23:23 2020
                              type: string
                            pid:
                              description: The session's PID.
                              example: 6735
                              minimum: 1
                              type: integer
                            status:
                              description: |-
                                The session's status.
                                - `IDLE` - The session is connected, but idle.
                                - `DL` - A download is in progress.
                                - `UL` - An upload is in progress.
                              enum:
                                - IDLE
                                - DL
                                - UL
                              example: IDLE
                              type: string
                            user:
                              description: The FTP account username.
                              example: ftpaccount
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return FTP server's active sessions
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              list_sessions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/list_sessions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_list_sessions.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_list_sessions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/list_sessions/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_list_sessions.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_list_sessions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'list_sessions'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/passwd:
    get:
      description: >-
        This function changes an FTP account's password.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: passwd
      parameters:
        - description: The FTP account's new password.
          in: query
          name: pass
          required: true
          schema:
            example: 12345luggage
            type: string
        - description: The FTP account username.
          in: query
          name: user
          required: true
          schema:
            example: ftpaccount
            type: string
        - description: "The user's associated domain.\n\n**Note:**\n\nThis parameter\_defaults to the\_cPanel account's primary domain"
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: passwd
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update FTP account's password
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              passwd \
              user='ftpaccount' \
              pass='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/passwd?user=ftpaccount&pass=12345luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_passwd.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to .../frontend/<theme-name>/api_examples/Ftp_passwd.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/passwd/,
                {
                    'user' => 'ftpaccount',
                    'pass' => '12345luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_passwd.live.php and put this code into that
            file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to .../frontend/<theme-name>/api_examples/Ftp_passwd.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'passwd',
                array (
                    'user' => 'ftpaccount',
                    'pass' => '12345luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/server_name:
    get:
      description: >-
        This function checks whether the server uses ProFTPD or Pure-FTPd.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: server_name
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: server_name
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          The FTP server.
                          * `pure-ftpd` - The Pure-FTPD server.
                          * `proftpd` - The ProFTPD FTP server.
                          * `disabled` - FTP has been disabled on this server.
                        enum:
                          - pure-ftpd
                          - proftpd
                          - disabled
                        example: pure-ftpd
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether server uses ProFTPD or Pure-FTPd
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              server_name
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/server_name
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_server_name.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_server_name.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/server_name/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_server_name.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_server_name.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'server_name'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/set_anonymous_ftp:
    get:
      description: >-
        This function enables or disables anonymous FTP logins.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_anonymous_ftp
      parameters:
        - description: |-
            Whether to enable or disable anonymous FTP logins.

            * `1` - Enable.
            * `0` - Disable.
          in: query
          name: set
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_anonymous_ftp
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable or disable anonymous FTP logins
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              set_anonymous_ftp
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/set_anonymous_ftp
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_set_anonymous_ftp.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_set_anonymous_ftp.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/set_anonymous_ftp/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_set_anonymous_ftp.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_set_anonymous_ftp.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'set_anonymous_ftp'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/set_anonymous_ftp_incoming:
    get:
      description: >-
        This function enables or disables inbound anonymous FTP transfers.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_anonymous_ftp_incoming
      parameters:
        - description: |-
            Whether to enable or disable inbound anonymous FTP transfers.

            * `1` - Enable.
            * `0` - Disable.
          in: query
          name: set
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_anonymous_ftp_incoming
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable or disable anonymous incoming FTP transfers
      tags:
        - Ftp
        - FTP Server Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              set_anonymous_ftp_incoming
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/set_anonymous_ftp_incoming
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_set_anonymous_ftp_incoming.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_set_anonymous_ftp_incoming.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/set_anonymous_ftp_incoming/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_set_anonymous_ftp_incoming.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_set_anonymous_ftp_incoming.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'set_anonymous_ftp_incoming'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/set_homedir:
    get:
      description: >-
        This function changes the home directory for FTP accounts.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_homedir
      parameters:
        - description: The FTP account username.
          in: query
          name: user
          required: true
          schema:
            example: example1
            type: string
        - description: |-
            The user's associated domain.

            **Note:**

            The default value is the cPanel account's primary domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The FTP account's home directory


            **Note:**


            This parameter defaults to the `user@domain` subdirectory in the
            cPanel account's home directory with the name, where user and domain
            represent the `user` and `domain` parameters.
          in: query
          name: homedir
          required: false
          schema:
            default: user@domain/
            example: example1/
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_homedir
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update FTP account's home directory
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              set_homedir \
              user='example1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/set_homedir?user=example1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_set_homedir.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_set_homedir.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/set_homedir/,
                {
                    'user' => 'example1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_set_homedir.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_set_homedir.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'set_homedir',
                array (
                    'user' => 'example1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Ftp/set_quota:
    get:
      description: >-
        This function changes an FTP account's quota.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_quota
      parameters:
        - description: The FTP account username.
          in: query
          name: user
          required: true
          schema:
            example: ftpaccount
            type: string
        - description: |-
            The user's associated domain.

            **Note:**

            The default value is the cPanel account's primary domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: |-
            Whether to disable quotas for the FTP account.
            * `1` - Disable quotas.
            * `0` - Enable quotas.

            **Note:**

             If you disable quotas for an FTP account, you grant that account unlimited disk space.
          in: query
          name: kill
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The new quota, in megabytes.


            **Note:**


            Setting this parameter to `0` grants the account unlimited disk
            space.
          in: query
          name: quota
          required: false
          schema:
            default: 0
            example: 500
            minimum: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_quota
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update FTP account's quota
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              set_quota \
              user='ftpaccount'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/set_quota?user=ftpaccount
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_set_quota.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to .../frontend/<theme-name>/api_examples/Ftp_set_quota.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/set_quota/,
                {
                    'user' => 'ftpaccount',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_set_quota.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_set_quota.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'set_quota',
                array (
                    'user' => 'ftpaccount',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Ftp/set_welcome_message:
    get:
      description: >-
        This function sets the FTP welcome message.


        **Important:**


        When you disable the [FTP role](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_welcome_message
      parameters:
        - description: The cPanel account's new FTP welcome message.
          in: query
          name: message
          required: true
          schema:
            example: Greetings, Professor Falken.
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_welcome_message
                    type: string
                  module:
                    description: The name of the module called.
                    example: Ftp
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update FTP welcome message
      tags:
        - Ftp
        - FTP Accounts
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Ftp \
              set_welcome_message \
              message='Greetings, Professor Falken.'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Ftp/set_welcome_message?message=Greetings%2c%20Professor%20Falken.
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Ftp_set_welcome_message.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Ftp_set_welcome_message.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Ftp/,
                q/set_welcome_message/,
                {
                    'message' => 'Greetings, Professor Falken.',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Ftp_set_welcome_message.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Ftp_set_welcome_message.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Ftp',
                'set_welcome_message',
                array (
                    'message' => 'Greetings, Professor Falken.',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /GPG/delete_keypair:
    get:
      description: This function deletes a GnuPG (GPG) key pair.
      operationId: delete_keypair
      parameters:
        - description: >-
            The ID of the GPG key that you wish to delete.


            **Note:**


            * The function will delete **all** keys that match this ID.
              * If you set this parameter to a public key, the function will delete the public key. 
              * If you set this parameter to a public and private key pair, the function will delete the public and private keys.
            * To obtain the desired key, call the UAPI `GPG::list_secret_keys`
            function.
          in: query
          name: key_id
          required: true
          schema:
            example: ACFFDB37176B680D
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_keypair
                    type: string
                  module:
                    description: The name of the module called.
                    example: GPG
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete GnuPG key pair
      tags:
        - GPG
        - Signing and Encryption (GnuPG Keys)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              GPG \
              delete_keypair \
              key_id='ACFFDB37176B680D'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/GPG/delete_keypair?key_id=ACFFDB37176B680D
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file GPG_delete_keypair.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/GPG_delete_keypair.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/GPG/,
                q/delete_keypair/,
                {
                    'key_id' => 'ACFFDB37176B680D',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file GPG_delete_keypair.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/GPG_delete_keypair.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'GPG',
                'delete_keypair',
                array (
                    'key_id' => 'ACFFDB37176B680D',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /GPG/export_public_key:
    get:
      description: This function exports a GnuPG (GPG) public key.
      operationId: export_public_key
      parameters:
        - description: The ID of the GPG key.
          in: query
          name: key_id
          required: true
          schema:
            example: 48BEA5A16FCA746E
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: export_public_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: GPG
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          key_data:
                            description: The GPG public key's contents.
                            example: >
                              -----BEGIN PGP PUBLIC KEY BLOCK-----

                              Version: GnuPG v2.0.22 (GNU/Linux)


                              mQMuBFzwFyMRCADgNf7GHvCgb2/HWBYVAzu408eXEO4ucWGfbD5c5BOHg7WBVOkh

                              j+J0HYaeh9FwOXLJAzesiGtTU/HQ5wNkBbKRYR2oNEUbiefBgQhjllIGJNnFCQbD

                              TcyxXjKUF4aQBw6InqzM9akVChLvGoCfom/y1fcwrQ5OQ46EEjhe9lSnj1E2DIi+

                              0PvOsWeehChtn28WkmXPcl+XovfsCl5vh2RnJQeJwkSwBogA1GObj9fnPBbrIUt2

                              F5JDaJ7/R8aDwV1Pg2mBmRqTBIKvx6gxEQgCL52OWCKVJfqy5oVGDl/2u0BGCaRt

                              3Tnh9B14Lk8frBaOjYMtMq1Rl3rPDc3KCRnLAQC6dMNJCxIoyfeEFqj0HgwHETYn

                              QNGwUaRrOGKLJbMnewf/Yq0S2R6YvMl8pDQeSExYJaqv/u2Hch6GM0f3CSvMnPSg

                              oB2c/h4MmhmiAbymSO5GBaM4Nx3NTNYU0JpghkTTJpucFZ8hK/aJ8PDQzBnS0zTY

                              F8ZqSMFL84QB1NTd1nlJnilpKCkBC6NHUh76IyLQEsH7jgOG9L28qnLxm8bGHwaJ

                              mhEH2Y859WzN9hUTZEMxdklI8uwdI+msI7md0uNYiWr5svtM+rrpU+LCZMG+nTCy

                              6q0CNLXM0T0Fa642mYSqV307Ouv5rjGvfohIOo5X8ikBoEIOAQk6LX800OzzYGG4

                              X75Q4irMuehEK3tId5VIRToy9MRLP6fyOVHwfhzD6Af/R2TJjIdEkEGdspuw9875

                              N4z9xV2QNVNgURIOutrfeKSbb7gRLgV7TWpKWItMoEO1njzb4YqoHwcAASj4TDaT

                              iCYun6u12Mb97L0S3QDaD3sLk7P5sZvnO//k/YxbGISv+HGl5rSF87kVectLYpAL

                              ehL2EBmyxP4nxhSDOqhc0rbaqOZ+b4F1ns4NsUJjxIqQJZ+ovTqkmKnh3YbBeMAb

                              sPcjyfQNmYE9qFXw17vJMm6ypNsuDIvxKCDq4QpO3/MujYX0Hg7aGOq4aWtndcL0

                              PfpukTLvTA+AedMj+0QHWiP15bSxCJKqa0O62mKWnrzL0Tju8FKTwVHgRoW57GY/

                              ZbQmYmVuZGVyIChpcyBncmVhdCkgPGJlbmRlckBleGFtcGxlLmNvbT6IgQQTEQgA

                              KQUCXPAXIwIbIwUJAeEzgAcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEEi+

                              paFvynRuACUA/1/usChuLicDwCbBlJpcYWaAkt4bC4z+wFAONKnwwlHoAQCq3GRM

                              to4CkoB6pK1Zh+s5SitojUFrKEj8CJNkAQOGaLkCDQRc8BcjEAgA4CY3AKnkIvSz

                              fcsFCf1NmZipQGLChs3iIhqa3NPiopYpYMNTdCZkkDMSDM40+d/LthpYnbzYVgPB

                              N9OFMdL/ndf/yu0jPEZE1uEpxvH1X/x2IecMy7wm51usxpBWwSw7BTLfA9ASzDtH

                              8fnkid2qY2J6fNWZDA5wrNR4auVKDkqKsatMC75GkHcT2NevLdh8SuYH60kQsmvD

                              OkuE4ufIwzlnQ4HFKsYTxn6QIQY18entu563f+RCoUCNv2J0zxXFzvy+eo568+Uh

                              x4Irz9OQRNUh/82a2HF10oUvkPEtCDlMy8gISEqnU1i2Ry8IsbUrvhz+my5yb5Gm

                              Zz+xOKWTiwADBQf/YOYKvHIWw4/vsbLUPMmjDdMfsnT0haDlLerCSHhY+ZLzYQdz

                              /7hC4Qt/5EvaGeXkwAPzr0T4PvVOQUUAiskvDNScYQxS5KxyrHAqoKkF4EDJ9MyK

                              DqEN6dF9IDOxuA1g0cOX7THPm3GjRh3BjOaHnN5jXKwT85Cs7hj7u1q9Cm59RUzJ

                              wRKyxo9eR3pJMR+8E0VW8oRe/7O/Qvh54ShD7NkfgUhIWcriR9MjoGp0gnpCOH52

                              LrfdczCIzAoUC4Q3Jm80sCeZAqf4CNHZ0TxqxuwG+ZkfbCBViM4TVXDEufA4IENM

                              mEu2bNWDLkRrrNme+S4HEeNRuSg8EOpFUuwPI4hnBBgRCAAPBQJc8BcjAhsMBQkB

                              4TOAAAoJEEi+paFvynRu0YsA/0rluXh9ij3Np4O/KWuL2L8zcOrJJ7mNFuw0wkpY

                              fZ3NAP9ayHG+70XellsQ/E3lR8fkRwqDDRh43w7ukhJEfkcY9A==

                              =yyST

                              -----END PGP PUBLIC KEY BLOCK-----
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export GnuPG public key
      tags:
        - GPG
        - Signing and Encryption (GnuPG Keys)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              GPG \
              export_public_key \
              key_id='48BEA5A16FCA746E'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/GPG/export_public_key?key_id=48BEA5A16FCA746E
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file GPG_export_public_key.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/GPG_export_public_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/GPG/,
                q/export_public_key/,
                {
                    'key_id' => '48BEA5A16FCA746E',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file GPG_export_public_key.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/GPG_export_public_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'GPG',
                'export_public_key',
                array (
                    'key_id' => '48BEA5A16FCA746E',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /GPG/export_secret_key:
    get:
      description: This function exports a GnuPG (GPG) secret key.
      operationId: export_secret_key
      parameters:
        - description: The ID of the GPG secret key that you wish to retrieve.
          in: query
          name: key_id
          required: true
          schema:
            example: 48BEA5A16FCA746E
            type: string
        - description: The passphrase of the GPG secret key that you wish to retrieve.
          in: query
          name: passphrase
          required: false
          schema:
            example: whatever
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: export_secret_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: GPG
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          key_data:
                            description: The GPG key's contents.
                            example: >-
                              -----BEGIN PGP PRIVATE KEY BLOCK-----

                              Version: GnuPG v2.0.22 (GNU/Linux)


                              lQNTBFzwFyMRCADgNf7GHvCgb2/HWBYVAzu408eXEO4ucWGfbD5c5BOHg7WBVOkh

                              j+J0HYaeh9FwOXLJAzesiGtTU/HQ5wNkBbKRYR2oNEUbiefBgQhjllIGJNnFCQbD

                              TcyxXjKUF4aQBw6InqzM9akVChLvGoCfom/y1fcwrQ5OQ46EEjhe9lSnj1E2DIi+

                              0PvOsWeehChtn28WkmXPcl+XovfsCl5vh2RnJQeJwkSwBogA1GObj9fnPBbrIUt2

                              F5JDaJ7/R8aDwV1Pg2mBmRqTBIKvx6gxEQgCL52OWCKVJfqy5oVGDl/2u0BGCaRt

                              3Tnh9B14Lk8frBaOjYMtMq1Rl3rPDc3KCRnLAQC6dMNJCxIoyfeEFqj0HgwHETYn

                              QNGwUaRrOGKLJbMnewf/Yq0S2R6YvMl8pDQeSExYJaqv/u2Hch6GM0f3CSvMnPSg

                              oB2c/h4MmhmiAbymSO5GBaM4Nx3NTNYU0JpghkTTJpucFZ8hK/aJ8PDQzBnS0zTY

                              F8ZqSMFL84QB1NTd1nlJnilpKCkBC6NHUh76IyLQEsH7jgOG9L28qnLxm8bGHwaJ

                              mhEH2Y859WzN9hUTZEMxdklI8uwdI+msI7md0uNYiWr5svtM+rrpU+LCZMG+nTCy

                              6q0CNLXM0T0Fa642mYSqV307Ouv5rjGvfohIOo5X8ikBoEIOAQk6LX800OzzYGG4

                              X75Q4irMuehEK3tId5VIRToy9MRLP6fyOVHwfhzD6Af/R2TJjIdEkEGdspuw9875

                              N4z9xV2QNVNgURIOutrfeKSbb7gRLgV7TWpKWItMoEO1njzb4YqoHwcAASj4TDaT

                              iCYun6u12Mb97L0S3QDaD3sLk7P5sZvnO//k/YxbGISv+HGl5rSF87kVectLYpAL

                              ehL2EBmyxP4nxhSDOqhc0rbaqOZ+b4F1ns4NsUJjxIqQJZ+ovTqkmKnh3YbBeMAb

                              sPcjyfQNmYE9qFXw17vJMm6ypNsuDIvxKCDq4QpO3/MujYX0Hg7aGOq4aWtndcL0

                              PfpukTLvTA+AedMj+0QHWiP15bSxCJKqa0O62mKWnrzL0Tju8FKTwVHgRoW57GY/

                              ZQABALMunDJSN+b/VyFzqifGvopLxJFqA4un4WjGEY9jvJooD7e0JmJlbmRlciAo

                              aXMgZ3JlYXQpIDxiZW5kZXJAZXhhbXBsZS5jb20+iIEEExEIACkFAlzwFyMCGyMF

                              CQHhM4AHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBIvqWhb8p0bgAlAP9f

                              7rAobi4nA8AmwZSaXGFmgJLeGwuM/sBQDjSp8MJR6AEAqtxkTLaOApKAeqStWYfr

                              OUoraI1BayhI/AiTZAEDhmidAj0EXPAXIxAIAOAmNwCp5CL0s33LBQn9TZmYqUBi

                              wobN4iIamtzT4qKWKWDDU3QmZJAzEgzONPnfy7YaWJ282FYDwTfThTHS/53X/8rt

                              IzxGRNbhKcbx9V/8diHnDMu8JudbrMaQVsEsOwUy3wPQEsw7R/H55IndqmNienzV

                              mQwOcKzUeGrlSg5KirGrTAu+RpB3E9jXry3YfErmB+tJELJrwzpLhOLnyMM5Z0OB

                              xSrGE8Z+kCEGNfHp7buet3/kQqFAjb9idM8Vxc78vnqOevPlIceCK8/TkETVIf/N

                              mthxddKFL5DxLQg5TMvICEhKp1NYtkcvCLG1K74c/psucm+Rpmc/sTilk4sAAwUH

                              /2DmCrxyFsOP77Gy1DzJow3TH7J09IWg5S3qwkh4WPmS82EHc/+4QuELf+RL2hnl

                              5MAD869E+D71TkFFAIrJLwzUnGEMUuSscqxwKqCpBeBAyfTMig6hDenRfSAzsbgN

                              YNHDl+0xz5txo0YdwYzmh5zeY1ysE/OQrO4Y+7tavQpufUVMycESssaPXkd6STEf

                              vBNFVvKEXv+zv0L4eeEoQ+zZH4FISFnK4kfTI6BqdIJ6Qjh+di633XMwiMwKFAuE

                              NyZvNLAnmQKn+AjR2dE8asbsBvmZH2wgVYjOE1VwxLnwOCBDTJhLtmzVgy5Ea6zZ

                              nvkuBxHjUbkoPBDqRVLsDyMAAVIC+56gmf2bW2mDuoFFUW6KT6jorvvbmXSZHi1L

                              AGhQj/Q83gRejq2g+DYiFlCIZwQYEQgADwUCXPAXIwIbDAUJAeEzgAAKCRBIvqWh

                              b8p0btGLAPsFHEqEg/qrEpjFu/9B8KvBWBgqIJm9XtDgaVaaHjzR4AD/XcrEvMuc

                              PVYssXICwKbDwxWEYqhpI6ms0IOob0PH8hE=

                              =W2NA

                              -----END PGP PRIVATE KEY BLOCK-----
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export GnuPG secret key
      tags:
        - GPG
        - Signing and Encryption (GnuPG Keys)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              GPG \
              export_secret_key \
              key_id='48BEA5A16FCA746E'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/GPG/export_secret_key?key_id=48BEA5A16FCA746E
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file GPG_export_secret_key.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/GPG_export_secret_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/GPG/,
                q/export_secret_key/,
                {
                    'key_id' => '48BEA5A16FCA746E',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file GPG_export_secret_key.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/GPG_export_secret_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'GPG',
                'export_secret_key',
                array (
                    'key_id' => '48BEA5A16FCA746E',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /GPG/generate_key:
    get:
      description: "This function generates a GnuPG\_(GPG) key. The system saves the key in the user's `.gnupg` directory.\n\n**Note:**\n\nThis function uses [the system's entropy](https://en.wikipedia.org/wiki/Entropy_(computing)) to generate the key. Systems with low entropy levels may cause long generation times or timeouts."
      operationId: generate_key
      parameters:
        - description: The user's email address.
          in: query
          name: email
          required: true
          schema:
            example: user@example.com
            format: email
            type: string
        - description: The name of the user for whom to generate the key.
          in: query
          name: name
          required: true
          schema:
            example: username
            format: username
            type: string
        - description: The key's password.
          in: query
          name: passphrase
          required: true
          schema:
            default: null
            example: 123456luggage
            type: string
        - description: A comment about the key.
          in: query
          name: comment
          required: false
          schema:
            default: null
            example: Username's Key
            type: string
        - description: >-
            The desired expiration date of the key

            as a timestamp in [Unix time
            format](http://en.wikipedia.org/wiki/Unix_time).


            **Note:**


            This will default to one year from the current date.
          in: query
          name: expire
          required: false
          schema:
            example: '1560363242'
            type: string
        - description: |-
            The new key's size, in bytes.

            **Note:**

            Large keys require more time to generate.
          in: query
          name: keysize
          required: false
          schema:
            default: 2048
            enum:
              - 1024
              - 2048
              - 3072
              - 4096
            example: 2048
            maximum: 4096
            minimum: 1024
            type: integer
        - description: |-
            Whether to generate the key without an expiration date.

            * `0` - The key will expire.
            * `1` - The key will **not** expire.
          in: query
          name: no_expire
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: generate_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: GPG
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create GnuPG key
      tags:
        - GPG
        - Signing and Encryption (GnuPG Keys)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              GPG \
              generate_key \
              name='username' \
              email='user@example.com'
              passphrase='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/GPG/generate_key?name=username&email=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file GPG_generate_key.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/GPG_generate_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/GPG/,
                q/generate_key/,
                {
                    'name' => 'username',
                    'email' => 'user@example.com',
                    'passphrase' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file GPG_generate_key.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/GPG_generate_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'GPG',
                'generate_key',
                array (
                    'name' => 'username',
                    'email' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /GPG/import_key:
    get:
      description: This function imports a GnuPG (GPG) key.
      operationId: import_key
      parameters:
        - description: |-
            The key to import.

            **Note:**

            You must URI-encode this value.
          in: query
          name: key_data
          required: true
          schema:
            example: >-
              %0A-----BEGIN%20PGP%20PUBLIC%20KEY%20BLOCK-----%0AVersion%3A%20GnuPG%20v2.0.14%20(GNU%2FLinux)%0A%0AmQENBFN0%2BOsBCADoFvyf8gHIKZ%2F%2B5KwbWb3Ht%2Fz1ukyQqFNGpBVIqHossmjmyF9e%0APn6iiZ0fHnt7r6XGGXaP%2BKKjIxAcqOTiFiP%2BHIx6GQubzVih6Ol0YNjzmK%2Ft4f%2B4%0AfSElEVnyzeyJa4LmC%2Fui%2FvvtptJ8JX6su7f11BwUTSyuqnk204AfN5uVpAcZNPT0%0A0qNNky1bxYvPUxU6Imvi1q3NtpFzqsQ4u%2FyZuLpUe7uwmgMPeO0lAms1kCa3Guot%0A3mfSt0vrUAMdcV4drY1FGtYZdYSa4rSTzpFuB7o9Ze%2BE3fUbCWs1%2B0FiN3JQNGO1%0AS2lnqjEqbpz2nHtA50elJRGqxZLEi8zkFqlTABEBAAG0Z2NQYW5lbCBTZWN1cml0%0AeSBUZWFtIC0gVEVTVCAoVEhJUyBJUyBBIFRFU1QgS0VZOyBETyBOT1QgVVNFIEZP%0AUiBBTllUSElORyBSRUFMISkgPHNlY3RlYW1zaXhAY3BhbmVsLm5ldD6JAT4EEwEC%0AACgFAlN0%2BOsCGwMFCQHhM4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOhU%0A60c9RtoRkhMIAIe2yDKj55mGD3zbuGqxx6NNNIyiuEujw31N8yOS9BKTqGtIiK9i%0AGu4lzrzmHISKi0rjKmJdbckap7OouUoo9WR3ewjN6S5EHyjKfrrMwMzTWMPZOkTj%0A7A698X0vGc9yZ6KyBj8mM8J9duvNtRS285hfXfQxYO%2FuiyrJGBedI%2FWVZ3a7mcfq%0A7FhC8t6jU6sz9uIvYHAzywcVdmhEK5rS%2FuE%2F9e37h46jn2%2BkzlIWEe%2FYgpa%2BuWdT%0AO%2BOyqteW51LEjXLWMyP8AJEq8EoqbqKnm4Q1g0etOQ9trrkLUnPxaSwD5R6i4KLH%0AMR%2Fh7m%2FOoz8yOhUlrCGJwX7v9qDEdaYYFLQ%3D%0A%3DMEFZ%0A-----END%20PGP%20PUBLIC%20KEY%20BLOCK-----%0A
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: import_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: GPG
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          key_id:
                            description: The key's ID.
                            example: 59E79B6904616529
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Import GnuPG key
      tags:
        - GPG
        - Signing and Encryption (GnuPG Keys)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              GPG \
              import_key \
              key_data='%0A-----BEGIN%20PGP%20PUBLIC%20KEY%20BLOCK-----%0AVersion%3A%20GnuPG%20v2.0.14%20(GNU%2FLinux)%0A%0AmQENBFN0%2BOsBCADoFvyf8gHIKZ%2F%2B5KwbWb3Ht%2Fz1ukyQqFNGpBVIqHossmjmyF9e%0APn6iiZ0fHnt7r6XGGXaP%2BKKjIxAcqOTiFiP%2BHIx6GQubzVih6Ol0YNjzmK%2Ft4f%2B4%0AfSElEVnyzeyJa4LmC%2Fui%2FvvtptJ8JX6su7f11BwUTSyuqnk204AfN5uVpAcZNPT0%0A0qNNky1bxYvPUxU6Imvi1q3NtpFzqsQ4u%2FyZuLpUe7uwmgMPeO0lAms1kCa3Guot%0A3mfSt0vrUAMdcV4drY1FGtYZdYSa4rSTzpFuB7o9Ze%2BE3fUbCWs1%2B0FiN3JQNGO1%0AS2lnqjEqbpz2nHtA50elJRGqxZLEi8zkFqlTABEBAAG0Z2NQYW5lbCBTZWN1cml0%0AeSBUZWFtIC0gVEVTVCAoVEhJUyBJUyBBIFRFU1QgS0VZOyBETyBOT1QgVVNFIEZP%0AUiBBTllUSElORyBSRUFMISkgPHNlY3RlYW1zaXhAY3BhbmVsLm5ldD6JAT4EEwEC%0AACgFAlN0%2BOsCGwMFCQHhM4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOhU%0A60c9RtoRkhMIAIe2yDKj55mGD3zbuGqxx6NNNIyiuEujw31N8yOS9BKTqGtIiK9i%0AGu4lzrzmHISKi0rjKmJdbckap7OouUoo9WR3ewjN6S5EHyjKfrrMwMzTWMPZOkTj%0A7A698X0vGc9yZ6KyBj8mM8J9duvNtRS285hfXfQxYO%2FuiyrJGBedI%2FWVZ3a7mcfq%0A7FhC8t6jU6sz9uIvYHAzywcVdmhEK5rS%2FuE%2F9e37h46jn2%2BkzlIWEe%2FYgpa%2BuWdT%0AO%2BOyqteW51LEjXLWMyP8AJEq8EoqbqKnm4Q1g0etOQ9trrkLUnPxaSwD5R6i4KLH%0AMR%2Fh7m%2FOoz8yOhUlrCGJwX7v9qDEdaYYFLQ%3D%0A%3DMEFZ%0A-----END%20PGP%20PUBLIC%20KEY%20BLOCK-----%0A'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/GPG/import_key?key_data=%250A-----BEGIN%2520PGP%2520PUBLIC%2520KEY%2520BLOCK-----%250AVersion%253A%2520GnuPG%2520v2.0.14%2520%28GNU%252FLinux%29%250A%250AmQENBFN0%252BOsBCADoFvyf8gHIKZ%252F%252B5KwbWb3Ht%252Fz1ukyQqFNGpBVIqHossmjmyF9e%250APn6iiZ0fHnt7r6XGGXaP%252BKKjIxAcqOTiFiP%252BHIx6GQubzVih6Ol0YNjzmK%252Ft4f%252B4%250AfSElEVnyzeyJa4LmC%252Fui%252FvvtptJ8JX6su7f11BwUTSyuqnk204AfN5uVpAcZNPT0%250A0qNNky1bxYvPUxU6Imvi1q3NtpFzqsQ4u%252FyZuLpUe7uwmgMPeO0lAms1kCa3Guot%250A3mfSt0vrUAMdcV4drY1FGtYZdYSa4rSTzpFuB7o9Ze%252BE3fUbCWs1%252B0FiN3JQNGO1%250AS2lnqjEqbpz2nHtA50elJRGqxZLEi8zkFqlTABEBAAG0Z2NQYW5lbCBTZWN1cml0%250AeSBUZWFtIC0gVEVTVCAoVEhJUyBJUyBBIFRFU1QgS0VZOyBETyBOT1QgVVNFIEZP%250AUiBBTllUSElORyBSRUFMISkgPHNlY3RlYW1zaXhAY3BhbmVsLm5ldD6JAT4EEwEC%250AACgFAlN0%252BOsCGwMFCQHhM4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOhU%250A60c9RtoRkhMIAIe2yDKj55mGD3zbuGqxx6NNNIyiuEujw31N8yOS9BKTqGtIiK9i%250AGu4lzrzmHISKi0rjKmJdbckap7OouUoo9WR3ewjN6S5EHyjKfrrMwMzTWMPZOkTj%250A7A698X0vGc9yZ6KyBj8mM8J9duvNtRS285hfXfQxYO%252FuiyrJGBedI%252FWVZ3a7mcfq%250A7FhC8t6jU6sz9uIvYHAzywcVdmhEK5rS%252FuE%252F9e37h46jn2%252BkzlIWEe%252FYgpa%252BuWdT%250AO%252BOyqteW51LEjXLWMyP8AJEq8EoqbqKnm4Q1g0etOQ9trrkLUnPxaSwD5R6i4KLH%250AMR%252Fh7m%252FOoz8yOhUlrCGJwX7v9qDEdaYYFLQ%253D%250A%253DMEFZ%250A-----END%2520PGP%2520PUBLIC%2520KEY%2520BLOCK-----%250A
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file GPG_import_key.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/GPG_import_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/GPG/,
                q/import_key/,
                {
                    'key_data' => '%0A-----BEGIN%20PGP%20PUBLIC%20KEY%20BLOCK-----%0AVersion%3A%20GnuPG%20v2.0.14%20(GNU%2FLinux)%0A%0AmQENBFN0%2BOsBCADoFvyf8gHIKZ%2F%2B5KwbWb3Ht%2Fz1ukyQqFNGpBVIqHossmjmyF9e%0APn6iiZ0fHnt7r6XGGXaP%2BKKjIxAcqOTiFiP%2BHIx6GQubzVih6Ol0YNjzmK%2Ft4f%2B4%0AfSElEVnyzeyJa4LmC%2Fui%2FvvtptJ8JX6su7f11BwUTSyuqnk204AfN5uVpAcZNPT0%0A0qNNky1bxYvPUxU6Imvi1q3NtpFzqsQ4u%2FyZuLpUe7uwmgMPeO0lAms1kCa3Guot%0A3mfSt0vrUAMdcV4drY1FGtYZdYSa4rSTzpFuB7o9Ze%2BE3fUbCWs1%2B0FiN3JQNGO1%0AS2lnqjEqbpz2nHtA50elJRGqxZLEi8zkFqlTABEBAAG0Z2NQYW5lbCBTZWN1cml0%0AeSBUZWFtIC0gVEVTVCAoVEhJUyBJUyBBIFRFU1QgS0VZOyBETyBOT1QgVVNFIEZP%0AUiBBTllUSElORyBSRUFMISkgPHNlY3RlYW1zaXhAY3BhbmVsLm5ldD6JAT4EEwEC%0AACgFAlN0%2BOsCGwMFCQHhM4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOhU%0A60c9RtoRkhMIAIe2yDKj55mGD3zbuGqxx6NNNIyiuEujw31N8yOS9BKTqGtIiK9i%0AGu4lzrzmHISKi0rjKmJdbckap7OouUoo9WR3ewjN6S5EHyjKfrrMwMzTWMPZOkTj%0A7A698X0vGc9yZ6KyBj8mM8J9duvNtRS285hfXfQxYO%2FuiyrJGBedI%2FWVZ3a7mcfq%0A7FhC8t6jU6sz9uIvYHAzywcVdmhEK5rS%2FuE%2F9e37h46jn2%2BkzlIWEe%2FYgpa%2BuWdT%0AO%2BOyqteW51LEjXLWMyP8AJEq8EoqbqKnm4Q1g0etOQ9trrkLUnPxaSwD5R6i4KLH%0AMR%2Fh7m%2FOoz8yOhUlrCGJwX7v9qDEdaYYFLQ%3D%0A%3DMEFZ%0A-----END%20PGP%20PUBLIC%20KEY%20BLOCK-----%0A',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file GPG_import_key.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/GPG_import_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'GPG',
                'import_key',
                array (
                    'key_data' => '%0A-----BEGIN%20PGP%20PUBLIC%20KEY%20BLOCK-----%0AVersion%3A%20GnuPG%20v2.0.14%20(GNU%2FLinux)%0A%0AmQENBFN0%2BOsBCADoFvyf8gHIKZ%2F%2B5KwbWb3Ht%2Fz1ukyQqFNGpBVIqHossmjmyF9e%0APn6iiZ0fHnt7r6XGGXaP%2BKKjIxAcqOTiFiP%2BHIx6GQubzVih6Ol0YNjzmK%2Ft4f%2B4%0AfSElEVnyzeyJa4LmC%2Fui%2FvvtptJ8JX6su7f11BwUTSyuqnk204AfN5uVpAcZNPT0%0A0qNNky1bxYvPUxU6Imvi1q3NtpFzqsQ4u%2FyZuLpUe7uwmgMPeO0lAms1kCa3Guot%0A3mfSt0vrUAMdcV4drY1FGtYZdYSa4rSTzpFuB7o9Ze%2BE3fUbCWs1%2B0FiN3JQNGO1%0AS2lnqjEqbpz2nHtA50elJRGqxZLEi8zkFqlTABEBAAG0Z2NQYW5lbCBTZWN1cml0%0AeSBUZWFtIC0gVEVTVCAoVEhJUyBJUyBBIFRFU1QgS0VZOyBETyBOT1QgVVNFIEZP%0AUiBBTllUSElORyBSRUFMISkgPHNlY3RlYW1zaXhAY3BhbmVsLm5ldD6JAT4EEwEC%0AACgFAlN0%2BOsCGwMFCQHhM4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOhU%0A60c9RtoRkhMIAIe2yDKj55mGD3zbuGqxx6NNNIyiuEujw31N8yOS9BKTqGtIiK9i%0AGu4lzrzmHISKi0rjKmJdbckap7OouUoo9WR3ewjN6S5EHyjKfrrMwMzTWMPZOkTj%0A7A698X0vGc9yZ6KyBj8mM8J9duvNtRS285hfXfQxYO%2FuiyrJGBedI%2FWVZ3a7mcfq%0A7FhC8t6jU6sz9uIvYHAzywcVdmhEK5rS%2FuE%2F9e37h46jn2%2BkzlIWEe%2FYgpa%2BuWdT%0AO%2BOyqteW51LEjXLWMyP8AJEq8EoqbqKnm4Q1g0etOQ9trrkLUnPxaSwD5R6i4KLH%0AMR%2Fh7m%2FOoz8yOhUlrCGJwX7v9qDEdaYYFLQ%3D%0A%3DMEFZ%0A-----END%20PGP%20PUBLIC%20KEY%20BLOCK-----%0A',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /GPG/list_public_keys:
    get:
      description: |-
        This function lists the GnuPG (GPG) public keys for the
        currently-authenticated account.
      operationId: list_public_keys
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_public_keys
                    type: string
                  module:
                    description: The name of the module called.
                    example: GPG
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            algorithm:
                              description: |-
                                The key's algorithm.
                                * RSA
                                * DSA
                              enum:
                                - RSA
                                - DSA
                              example: DSA
                              type: string
                            bits:
                              description: The length of the key, in bits.
                              enum:
                                - 1024
                                - 2048
                                - 3072
                                - 4096
                              example: 2048
                              maximum: 4096
                              minimum: 1024
                              type: integer
                            created:
                              description: >-
                                The creation time for the key,

                                in [Unix time
                                format](http://en.wikipedia.org/wiki/Unix_time).
                              example: '1559238435'
                              type: string
                            expires:
                              description: >-
                                When the key will expire,

                                in [Unix time
                                format](http://en.wikipedia.org/wiki/Unix_time).


                                **Note:**


                                If the key does not expire,

                                this will be an empty string.
                              example: '1590774435'
                              type: string
                            id:
                              description: The key's ID.
                              example: C801294347601B8F
                              type: string
                            type:
                              description: >-
                                The type of key.


                                **Note:**


                                This will always be "pub" because we are listing
                                public keys.
                              enum:
                                - pub
                              example: pub
                              type: string
                            user_id:
                              description: >-
                                The user ID of the key which consists of the
                                following space-separated values:

                                * The username.

                                * The key's comment in parentheses.

                                * The key's email address in angle brackets
                                (<>).
                              example: bender (is great) <bender@example.com>
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return current user's GnuPG public keys
      tags:
        - GPG
        - Signing and Encryption (GnuPG Keys)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              GPG \
              list_public_keys
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/GPG/list_public_keys
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file GPG_list_public_keys.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/GPG_list_public_keys.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/GPG/,
                q/list_public_keys/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file GPG_list_public_keys.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/GPG_list_public_keys.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'GPG',
                'list_public_keys'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /GPG/list_secret_keys:
    get:
      description: >-
        This function lists the GnuPG (GPG) secret keys for the
        currently-authenticated account.
      operationId: list_secret_keys
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_secret_keys
                    type: string
                  module:
                    description: The name of the module called.
                    example: GPG
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            algorithm:
                              description: |-
                                The key's algorithm.
                                * `RSA`
                                * `DSA`
                              enum:
                                - RSA
                                - DSA
                              example: DSA
                              type: string
                            bits:
                              description: The key's length.
                              example: 2048
                              maximum: 4096
                              minimum: 1024
                              multipleOf: 1024
                              type: integer
                            created:
                              description: When the function created the key.
                              example: 1559238435
                              format: unix_timestamp
                              type: integer
                            expires:
                              description: When the key will expire.
                              example: 1590774435
                              format: unix_timestamp
                              type: integer
                            id:
                              description: The key's ID.
                              example: 738538C1
                              type: string
                            type:
                              description: |-
                                The type of key.

                                * `sec` is the only possible value.
                              enum:
                                - sec
                              example: sec
                              type: string
                            user_id:
                              description: >-
                                The user ID of the key. The system returns this
                                value as a space-separated string with the
                                following values:


                                * The username.

                                * A comment in parentheses.

                                * The key's email address in angle brackets
                                (`<>`).
                              example: username (John Doe) <username@example.com>
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — `Success`.

                          * `0` — `Failed`. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return current user's GnuPG secret keys
      tags:
        - GPG
        - Signing and Encryption (GnuPG Keys)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              GPG \
              list_secret_keys
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/GPG/list_secret_keys
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file GPG_list_secret_keys.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/GPG_list_secret_keys.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/GPG/,
                q/list_secret_keys/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file GPG_list_secret_keys.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/GPG_list_secret_keys.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'GPG',
                'list_secret_keys'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /ImageManager/convert_file:
    get:
      description: >-
        This function converts an image to a new file format.


        **Important:**


        When you disable the [WebServer
        role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles),
        the system **disables** this function.
      operationId: convert_file
      parameters:
        - description: >-
            The image file to convert, relative to the cPanel account's `/home`
            directory.
          in: query
          name: image_file
          required: true
          schema:
            example: images/myimage.jpg
            type: string
        - description: The format to which to convert the images.
          in: query
          name: type
          required: true
          schema:
            example: png
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: convert_file
                    type: string
                  module:
                    description: The name of the module called.
                    example: ImageManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          converted_file:
                            description: The new absolute filepath to the image.
                            example: /home/cptest1/images/myimage.png
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create image with new format
      tags:
        - ImageManager
        - Image Tools
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ImageManager \
              convert_file \
              image_file='images/myimage.jpg' \
              type='png'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ImageManager/convert_file?image_file=images%2fmyimage.jpg&type=png
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ImageManager_convert_file.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ImageManager_convert_file.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ImageManager/,
                q/convert_file/,
                {
                    'image_file' => 'images/myimage.jpg',
                    'type' => 'png',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ImageManager_convert_file.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ImageManager_convert_file.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ImageManager',
                'convert_file',
                array (
                    'image_file' => 'images/myimage.jpg',
                    'type' => 'png',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /ImageManager/create_thumbnails:
    get:
      description: >-
        This function creates thumbnails from images. The function saves the new
        thumbnail images in a thumbnails subdirectory inside the original
        directory. The system prepends thumbnail filenames with ``tn_`` (for
        example, ``tn_picture.jpg``).


        **Important:**


        When you disable the [WebServer
        role](https://go.cpanel.net/serverroles), the system disables this
        function.
      operationId: create_thumbnails
      parameters:
        - description: >-
            The path to the directory where the image resides. When you pass
            this parameter, the function creates a thumbnail directory directly
            below the image directory.


            **NOTE:**


            This parameter can use an absolute directory path or a path relative
            to the user's home directory.
          in: query
          name: dir
          required: true
          schema:
            example: images
            type: string
        - description: The percentage by which to reduce the thumbnails' height.
          in: query
          name: height_percentage
          required: true
          schema:
            example: 25
            maximum: 99
            minimum: 1
            type: integer
        - description: The percentage by which to reduce the thumbnails' width.
          in: query
          name: width_percentage
          required: true
          schema:
            example: 25
            maximum: 99
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_thumbnails
                    type: string
                  module:
                    description: The name of the module called.
                    example: ImageManager
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing thumbnail file
                          information.
                        items:
                          properties:
                            failed:
                              description: >-
                                Whether the function failed to create the
                                thumbnail file.


                                **Note:**

                                 * The function **only** returns this value if it doesn't create the thumbnail.
                                 * `1` is the **only** possible value.
                              enum:
                                - 1
                              example: 1
                              type: integer
                            file:
                              description: >-
                                The file from which the function generated the
                                thumbnail file. An absolute filepath.
                              example: /home/cptest1/public_html/images/610_290.jpg
                              type: string
                            reason:
                              description: >-
                                The reason that the function didn't create the
                                thumbnail file.


                                **Note:**

                                 The function only returns this value if it doesn't create the thumbnail.
                              example: too many pixels
                              type: string
                            thumbnail_file:
                              description: >-
                                The thumbnail file that the function generated.
                                An absolute filepath.
                              example: >-
                                /home/cptest1/public_html/images/thumbnails/tn_610_290.jpg
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the ``errors`` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create image thumbnails
      tags:
        - ImageManager
        - Image Tools
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ImageManager \
              create_thumbnails \
              dir='images' \
              width_percentage='25' \
              height_percentage='25'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ImageManager/create_thumbnails?dir=images&width_percentage=25&height_percentage=25
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ImageManager_create_thumbnails.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ImageManager_create_thumbnails.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ImageManager/,
                q/create_thumbnails/,
                {
                    'dir' => 'images',
                    'width_percentage' => '25',
                    'height_percentage' => '25',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ImageManager_create_thumbnails.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ImageManager_create_thumbnails.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ImageManager',
                'create_thumbnails',
                array (
                    'dir' => 'images',
                    'width_percentage' => '25',
                    'height_percentage' => '25',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /ImageManager/get_dimensions:
    get:
      description: >-
        This function returns the dimensions of the image file that you specify.


        **Important:**


        When you disable the [WebServer
        role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles),
        the system **disables** this function.
      operationId: get_dimensions
      parameters:
        - description: >-
            The path to the file to measure.


            **Note:**


            Use the absolute filepath or a path relative to the user's home
            directory.
          in: query
          name: image_file
          required: true
          schema:
            example: image/myimage.jpg
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_dimensions
                    type: string
                  module:
                    description: The name of the module called.
                    example: ImageManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          height:
                            description: The image's height, in pixels.
                            example: 300
                            minimum: 1
                            type: integer
                          width:
                            description: The image's width, in pixels.
                            example: 261
                            minimum: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return image dimensions
      tags:
        - ImageManager
        - Image Tools
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ImageManager \
              get_dimensions \
              image_file='image/myimage.jpg'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ImageManager/get_dimensions?image_file=image%2fmyimage.jpg
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ImageManager_get_dimensions.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ImageManager_get_dimensions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ImageManager/,
                q/get_dimensions/,
                {
                    'image_file' => 'image/myimage.jpg',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ImageManager_get_dimensions.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ImageManager_get_dimensions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ImageManager',
                'get_dimensions',
                array (
                    'image_file' => 'image/myimage.jpg',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /ImageManager/resize_image:
    get:
      description: >-
        This function resizes a specified image.


        **Important:**


        When you disable the [WebServer
        role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles),
        the system **disables** this function.
      operationId: resize_image
      parameters:
        - description: The height to which to set the image size.
          in: query
          name: height
          required: true
          schema:
            example: 300
            minimum: 1
            type: integer
        - description: >-
            The name of the file to scale.


            **Note:**


            Use the absolute filepath or a filepath relative to the user's home
            directory.
          in: query
          name: image_file
          required: true
          schema:
            example: /images/image.jpg
            type: string
        - description: The width to which to set the image size.
          in: query
          name: width
          required: true
          schema:
            example: 200
            minimum: 1
            type: integer
        - description: >-
            The path to the directory in which to save a copy the original

            image file.


            **Note:**


            * If you don't pass this parameter, the function doesn't save

            a copy of the original image.

            * Use the absolute filepath or a filepath relative to the user's
            home directory.
          in: query
          name: save_original_as
          required: false
          schema:
            example: images/original.jpg
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: resize_image
                    type: string
                  module:
                    description: The name of the module called.
                    example: ImageManager
                    type: string
                  result:
                    properties:
                      data:
                        description: The absolute filepath to the resized image.
                        example: /home/cptest1/images/myimage.jpg
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Save resized image
      tags:
        - ImageManager
        - Image Tools
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ImageManager \
              resize_image \
              image_file='images/image.jpg' \
              width='200' \
              height='300'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ImageManager/resize_image?image_file=%2fimages%2fimage.jpg&width=200&height=300
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ImageManager_resize_image.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ImageManager_resize_image.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ImageManager/,
                q/resize_image/,
                {
                    'image_file' => '/images/image.jpg',
                    'width' => '200',
                    'height' => '300',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ImageManager_resize_image.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ImageManager_resize_image.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ImageManager',
                'resize_image',
                array (
                    'image_file' => '/images/image.jpg',
                    'width' => '200',
                    'height' => '300',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /InProductSurvey/get_in_product_survey_url:
    get:
      description: >-

        This function returns whether the in-product survey banner should
        display for the current user and the survey link.


        **Notes:**


        * The function selects a link template based on whether the
        authenticated user is a webmail user or a cPanel/Team user.

        * A `display` value of `0` means you should not render the banner UI.
      operationId: get_in_product_survey_url
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_in_product_survey_url
                    type: string
                  module:
                    description: The name of the module called.
                    example: InProductSurvey
                    type: string
                  result:
                    properties:
                      data:
                        description: The in-product survey banner data.
                        example:
                          display: '1'
                          link: https://survey.example.tld/some/generated/link
                          max_dismiss: '3'
                          new_user: '0'
                          submit_event: survey_submitted
                          server_type: cpanel
                          user_type: cpanel
                        properties:
                          display:
                            description: |-
                              Whether to display the in-product survey banner.
                              * `1` — Display the banner.
                              * `0` — Do not display the banner.
                            enum:
                              - '1'
                              - '0'
                            example: '1'
                            type: string
                          link:
                            description: The fully resolved survey URL.
                            example: https://survey.example.tld/some/generated/link
                            type: string
                          max_dismiss:
                            description: >-
                              Maximum number of dismissals allowed before the
                              banner is suppressed.
                            example: '3'
                            type: string
                          new_user:
                            description: |-
                              Whether the authenticated user is considered new.
                              * `1` — New user experience.
                              * `0` — Established user.
                            enum:
                              - '1'
                              - '0'
                            example: '0'
                            type: string
                          submit_event:
                            description: >-
                              Client-side analytics or event identifier emitted
                              on successful survey submission.
                            example: survey_submitted
                            type: string
                          server_type:
                            description: >-
                              Product/server type identifier (e.g., cpanel,
                              whm).
                            example: cpanel
                            type: string
                          user_type:
                            description: Type of authenticated user context.
                            enum:
                              - cpanel
                              - webmail
                            example: cpanel
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return in-product survey banner data
      tags:
        - InProductSurvey
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
            --user=username \
            InProductSurvey \
            get_in_product_survey_url
        - label: URL
          lang: HTTP
          source: >
            https://hostname.example.com:2083/cpsess##########/execute/InProductSurvey/get_in_product_survey_url
        - label: LiveAPI Perl
          lang: Perl
          source: |
            use strict;
            use Cpanel::LiveAPI ();
            my $cpanel = Cpanel::LiveAPI->new();
            print "Content-type: text/plain\r\n\r\n";
            my $response = $cpanel->uapi(
                q/InProductSurvey/,
                q/get_in_product_survey_url/,
            );
            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                print to_json($data);
            }
            else {
                print to_json($response->{cpanelresult}{result}{errors});
            }
            $cpanel->end();
            sub to_json { require JSON; JSON->new->pretty->encode($_[0]) }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            require_once "/usr/local/cpanel/php/cpanel.php";

            header('Content-Type: text/plain');

            $cpanel = new CPANEL();

            $response = $cpanel->uapi('InProductSurvey',
            'get_in_product_survey_url');

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                print json_encode($data, JSON_PRETTY_PRINT);
            } else {
                print json_encode($response['cpanelresult']['result']['errors'], JSON_PRETTY_PRINT);
            }

            $cpanel->end();
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: '11.32'
  /Integration/fetch_url:
    get:
      description: This function returns the URL for an integrated application.
      operationId: fetch_url
      parameters:
        - description: The application's name.
          in: query
          name: app
          required: true
          schema:
            example: applicationname
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_url
                    type: string
                  module:
                    description: The name of the module called.
                    example: Integration
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          redirect_url:
                            description: >-
                              The publicly-available URL to which the
                              application will redirect visitors.
                            example: http://application.example.com/application
                            format: url
                            type: string
                          url:
                            description: >-
                              The publicly-available URL to which the
                              application redirects visitors if the
                              `redirect_url` location is unavailable.
                            example: http://application.example.com/
                            format: url
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return integrated application URL
      tags:
        - Integration
        - URL Parsing
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Integration \
              fetch_url \
              app='applicationname'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Integration/fetch_url?app=applicationname
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Integration_fetch_url.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Integration_fetch_url.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Integration/,
                q/fetch_url/,
                {
                    'app' => 'applicationname',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Integration_fetch_url.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Integration_fetch_url.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Integration',
                'fetch_url',
                array (
                    'app' => 'applicationname',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /KnownHosts/create:
    get:
      description: "This function registers a host in the cPanel account's\_`/home/user/.ssh/known_hosts` file."
      operationId: create
      parameters:
        - description: The hostname or IP address to add.
          example: hostname.example.com
          in: query
          name: host_name
          required: true
          schema:
            oneOf:
              - description: A valid hostname.
                example: hostname.example.com
                format: hostname
                type: string
              - description: A valid IP address.
                example: 192.0.2.102
                format: ipv4
                type: string
        - description: The SSH port to use, if the system uses a non-standard SSH port.
          in: query
          name: port
          required: false
          schema:
            default: 22
            example: 1234
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create
                    type: string
                  module:
                    description: The name of the module called.
                    example: KnownHosts
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          host:
                            description: >-
                              An array of objects containing information for the
                              host.
                            items:
                              properties:
                                host:
                                  description: The hostname or IP address.
                                  example: hostname.example.com
                                  oneOf:
                                    - description: A valid hostname.
                                      example: hostname.example.com
                                      format: hostname
                                      type: string
                                    - description: A valid IP address.
                                      example: 192.0.2.102
                                      format: ipv4
                                      type: string
                                key:
                                  description: The host's key.
                                  example: >-
                                    ssh-rsa
                                    AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
                                  type: string
                                line:
                                  description: >-
                                    The host's entry in the
                                    `/home/user/.ssh/known_hosts` file, where
                                    `user` is the cPanel account username.
                                  example: >-
                                    host.example.com ssh-rsa
                                    AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
                                  type: string
                                meta:
                                  description: >-
                                    An object containing metadata about the
                                    host's public key.
                                  properties:
                                    algorithm:
                                      description: The key's algorithm.
                                      example: ssh-rsa
                                      type: string
                                    body:
                                      description: The host's public key.
                                      example: >-
                                        AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
                                      type: string
                                    md5:
                                      description: >-
                                        The key's
                                        [MD5](https://en.wikipedia.org/wiki/MD5)
                                        fingerprint.
                                      example: b6030e39979ed0e724cea3773e014209
                                      type: string
                                    md5-printable:
                                      description: >-
                                        A human-readable version of the key's
                                        MD5 fingerprint.
                                      example: >-
                                        MD5:b6:03:0e:39:97:9e:d0:e7:24:ce:a3:77:3e:01:42:09
                                      type: string
                                    sha256:
                                      description: >-
                                        The key's
                                        [SHA-256](https://en.wikipedia.org/wiki/SHA-2)

                                        fingerprint.
                                      example: >-
                                        44e405bcf4e11ab5b846e58ba0bf6dabd23dcc9e367cae17cb0c91b5b
                                        3b3fc44
                                      type: string
                                    sha256-printable:
                                      description: >-
                                        A human-readable version of the key's
                                        SHA-256 fingerprint.
                                      example: >-
                                        SHA256:ROQFvPThGrW4RuWLoL9tq9I9zJ42fK4XywyRtbOz/EQ
                                      type: string
                                  type: object
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create host
      tags:
        - KnownHosts
        - Known SSH Hosts Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              KnownHosts \
              create \
              host_name='hostname.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/KnownHosts/create?host_name=hostname.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file KnownHosts_create.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/KnownHosts_create.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/KnownHosts/,
                q/create/,
                {
                    'host_name' => 'hostname.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file KnownHosts_create.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/KnownHosts_create.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'KnownHosts',
                'create',
                array (
                    'host_name' => 'hostname.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /KnownHosts/delete:
    get:
      description: "This function removes a host from the cPanel account's\_`/home/user/.ssh/known_hosts` file."
      operationId: KnownHosts::delete
      parameters:
        - description: The hostname or IP address of the host to delete.
          in: query
          name: host_name
          required: true
          schema:
            example: host.example.com
            oneOf:
              - format: hostname
                type: string
              - format: ipv4
                type: string
        - description: The SSH port to use.
          in: query
          name: port
          required: false
          schema:
            default: 22
            example: 1234
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete
                    type: string
                  module:
                    description: The name of the module called.
                    example: KnownHosts
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete host
      tags:
        - KnownHosts
        - Known SSH Hosts Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              KnownHosts \
              delete \
              host_name='host.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/KnownHosts/delete?host_name=host.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file KnownHosts_delete.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/KnownHosts_delete.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/KnownHosts/,
                q/delete/,
                {
                    'host_name' => 'host.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file KnownHosts_delete.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/KnownHosts_delete.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'KnownHosts',
                'delete',
                array (
                    'host_name' => 'host.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /KnownHosts/update:
    get:
      description: "This function updates a host's entry in the cPanel account's\_/home/user/.ssh/known_hosts file."
      operationId: KnownHosts::update
      parameters:
        - description: The host to update.
          in: query
          name: host_name
          required: true
          schema:
            example: host.example.com
            oneOf:
              - format: hostname
                type: string
              - format: ipv4
                type: string
        - description: The SSH port to use.
          in: query
          name: port
          required: false
          schema:
            default: 22
            example: 1234
            maximum: 65535
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update
                    type: string
                  module:
                    description: The name of the module called.
                    example: KnownHosts
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          host:
                            description: >-
                              An array of objects containing the host's
                              information.
                            items:
                              properties:
                                host:
                                  description: >-
                                    The updated host and its associated key
                                    value.
                                  example: host.example.com
                                  oneOf:
                                    - format: hostname
                                      type: string
                                    - format: ipv4
                                      type: string
                                key:
                                  description: The host's key.
                                  example: >-
                                    ssh-rsa
                                    AAAAB3NzaC1yc2AEEEEDAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
                                  type: string
                                line:
                                  description: >-
                                    The host's entry in the
                                    `/home/user/.ssh/known_hosts` file, where
                                    user is the cPanel account username. A valid
                                    entry that includes the hostname or IP
                                    address, the key's algorithm, and the public
                                    key.
                                  example: >-
                                    host.example.com ssh-rsa
                                    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
                                  type: string
                                meta:
                                  description: >-
                                    An object containing metadata about the
                                    host's public key.
                                  properties:
                                    algorithm:
                                      description: The key's algorithm.
                                      example: ssh-rsa
                                      type: string
                                    body:
                                      description: The host's public key.
                                      example: >-
                                        EEEEB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9\bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
                                      type: string
                                    md5:
                                      description: The key's MD5 fingerprint.
                                      example: b6030e39868ed0e724cea3773e014219
                                      type: string
                                    md5-printable:
                                      description: >-
                                        A human-readable version of the key's
                                        MD5 fingerprint.
                                      example: >-
                                        MD5:b6:03:0e:39:97:2e:d0:e7:24:ab:c3:77:3d:01:42:09
                                      type: string
                                    sha256:
                                      description: The key's SHA-256 fingerprint.
                                      example: >-
                                        55a405bcf4e11ab5b846e58ba0bf6dabd23dcc9e367cae17cb0c91b5b3b3fc55
                                      type: string
                                    sha256-printable:
                                      description: >-
                                        human-readable version of the key's
                                        SHA-256 fingerprint.
                                      example: >-
                                        SHA256:RPLFvPThGrW4RuWLoL9tq9I9zJ42fK3XywyRtbOz/EQ
                                      type: string
                                  type: object
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` Success.

                          * `0` Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update host in the known_hosts file
      tags:
        - KnownHosts
        - Known SSH Hosts Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              KnownHosts \
              update \
              host_name='host.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/KnownHosts/update?host_name=host.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file KnownHosts_update.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/KnownHosts_update.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/KnownHosts/,
                q/update/,
                {
                    'host_name' => 'host.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file KnownHosts_update.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/KnownHosts_update.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'KnownHosts',
                'update',
                array (
                    'host_name' => 'host.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /KnownHosts/verify:
    get:
      description: "This function checks whether a host's public key exists in the cPanel account's\_`/home/user/.ssh/known_hosts` file."
      operationId: verify
      parameters:
        - description: The host to query.
          in: query
          name: host_name
          required: true
          schema:
            example: host.example.com
            oneOf:
              - format: ipv4
                type: string
              - format: domain
                type: string
        - description: The SSH port to use.
          in: query
          name: port
          required: false
          schema:
            default: 22
            example: 1234
            maximum: 65535
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: verify
                    type: string
                  module:
                    description: The name of the module called.
                    example: KnownHosts
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          errors:
                            description: An array of errors that the system generated.
                            items:
                              example: >-
                                The example.com host does not exist in the
                                known_hosts file.
                              type: string
                            type: array
                          failure_type:
                            description: >-
                              The reason why the system will register the
                              hostname.

                              * `new` — The host does **not** already exist.

                              * `changed` — The host's information has changed.
                            enum:
                              - new
                              - changed
                            example: new
                            type: string
                          host:
                            description: >-
                              An array of objects that contain information about
                              the host.
                            items:
                              properties:
                                host:
                                  description: The hostname or IP address.
                                  example: host.example.com
                                  oneOf:
                                    - format: ipv4
                                      type: string
                                    - format: domain
                                      type: string
                                key:
                                  description: The host's key.
                                  example: >-
                                    ssh-rsa
                                    AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
                                  type: string
                                line:
                                  description: >-
                                    The host's entry in the
                                    `/home/user/.ssh/known_hosts` file, where
                                    `user` is the cPanel account username.
                                  example: >-
                                    host.example.com ssh-rsa
                                    AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
                                  type: string
                                meta:
                                  description: >-
                                    An object that contains information about
                                    the host's public key.
                                  properties:
                                    algorithm:
                                      description: The key's algorithm.
                                      example: ssh-rsa
                                      type: string
                                    body:
                                      description: The host's public key. public key.
                                      example: >-
                                        AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
                                      type: string
                                    md5:
                                      description: >-
                                        The key's
                                        [MD5](https://en.wikipedia.org/wiki/MD5)
                                        fingerprint.
                                      example: b6030e39979ed0e724cea3773e014209
                                      type: string
                                    md5-printable:
                                      description: >-
                                        A human-readable version of the key's
                                        MD5 fingerprint.
                                      example: >-
                                        MD5:b6:03:0e:39:97:9e:d0:e7:24:ce:a3:77:3e:01:42:09
                                      type: string
                                    sha256:
                                      description: >-
                                        The key's
                                        [SHA-256](https://en.wikipedia.org/wiki/SHA-2)
                                        fingerprint.
                                      example: >-
                                        44e405bcf4e11ab5b846e58ba0bf6dabd23dcc9e367cae17cb0c91b5b3b3fc44
                                      type: string
                                    sha256-printable:
                                      description: >-
                                        A human-readable version of the key's
                                        SHA-256 fingerprint.
                                      example: >-
                                        SHA256:ROQFvPThGrW4RuWLoL9tq9I9zJ42fK4XywyRtbOz/EQ
                                      type: string
                                  type: object
                              type: object
                            type: array
                          status:
                            description: >-
                              Whether the host already exists in the
                              `/home/user/.ssh/known_hosts` file, where `user`
                              is the cPanel account username.

                              * `1` — Exists.

                              * `0` — The host does **not** already exist, or
                              the system must re-register the hostname.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate host
      tags:
        - KnownHosts
        - Known SSH Hosts Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              KnownHosts \
              verify \
              host_name='host.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/KnownHosts/verify?host_name=host.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file KnownHosts_verify.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/KnownHosts_verify.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/KnownHosts/,
                q/verify/,
                {
                    'host_name' => 'host.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file KnownHosts_verify.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/KnownHosts_verify.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'KnownHosts',
                'verify',
                array (
                    'host_name' => 'host.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /LangPHP/php_get_domain_handler:
    get:
      description: |-
        This function returns a PHP version's assigned PHP handler.

        **Note:**

          This document **only** applies to systems that run EasyApache 4.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system disables this function. For more information, read our How to Use Server Profiles documentation.
      operationId: php_get_domain_handler
      parameters:
        - description: |-
            The type of `php.ini` file.

            * `home`
            * `vhost`

            **Important:**

             * If you set this parameter to `vhost`, you **must** also include the vhost parameter.
             * If you set this parameter to `home`, the system returns the system default PHP handler.
          in: query
          name: type
          required: true
          schema:
            enum:
              - home
              - vhost
            example: vhost
            type: string
        - description: |-
            The name of a virtual host.

            **Important:**

             If the `type` value is `vhost`, you **must** use this parameter.
          in: query
          name: vhost
          required: false
          schema:
            example: clearly.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_get_domain_handler
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          php_handler:
                            description: The virtual host's PHP handler.
                            example: cgi
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return PHP version's handler
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_get_domain_handler \
              type='vhost'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_get_domain_handler?type=vhost
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_get_domain_handler.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_domain_handler.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_get_domain_handler/,
                {
                    'type' => 'vhost',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_get_domain_handler.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_domain_handler.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_get_domain_handler',
                array (
                    'type' => 'vhost',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 68
  /LangPHP/php_get_impacted_domains:
    get:
      description: >-
        This function lists domains that obtain their PHP version from a
        specified PHP configuration.


        **Note:**

          This document **only** applies to systems that run EasyApache 4.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: php_get_impacted_domains
      parameters:
        - description: "A domain on the system.\n\n**Note:**\n\n * You\_must\_pass either the `system_default` or `domain` parameters, or both.\n * You can pass this parameter multiple times.\n * You **cannot** pass the name of a parked domain."
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            Whether to return domains that inherit the system's default PHP
            version.


            * `1` - Return domains that inherit the system's default PHP
            version.

            * `0` - Do **not** return domains that inherit the system's default
            PHP version.


            **Note:**


            If you pass this parameter with a false value and do **not** also
            pass the domain parameter, the function returns an error.
          in: query
          name: system_default
          required: false
          schema:
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_get_impacted_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          domains:
                            description: >-
                              The domains that obtain their PHP version from the
                              PHP configuration. Any valid domain or subdomain.


                              **Note:**


                              This function does **not** return parked domains.
                            items:
                              example: example.com
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains that shared PHP configuration
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_get_impacted_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_get_impacted_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_get_impacted_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_impacted_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_get_impacted_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_get_impacted_domains.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_impacted_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_get_impacted_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 62
  /LangPHP/php_get_installed_versions:
    get:
      description: |-
        This function lists the system's PHP versions.

        **Note:**

          This document **only** applies to systems that run EasyApache 4.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: php_get_installed_versions
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_get_installed_versions
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          versions:
                            description: |-
                              The available PHP versions.

                              - `ea-php72`
                              - `ea-php73`
                              - `ea-php74`
                              -  Any custom PHP package name.
                            items:
                              example: ea-php72
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return installed PHP versions
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_get_installed_versions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_get_installed_versions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_get_installed_versions.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_installed_versions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_get_installed_versions/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_get_installed_versions.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_installed_versions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_get_installed_versions'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_get_system_default_version:
    get:
      description: |-
        This function lists the system’s default PHP version.

        **Important**:

          When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: php_get_system_default_version
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_get_system_default_version
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          version:
                            description: |-
                              The system’s default PHP version.

                              Possible values include:
                                * An installed PHP package that cPanel provides. For example, `ea-php80`
                                * An installed PHP package that another vendor provides. For example, `alt-php42`
                                * `null` – This value means PHP is **not** installed. Also, the `errors` return will contain a message that indicates that PHP is not installed.

                              **Note**:

                                If no default is explicitly set, the package for the newest installed version of PHP is chosen.
                            example: ea-php73
                            nullable: true
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return default PHP version
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_get_system_default_version
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_get_system_default_version
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_get_system_default_version.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_system_default_version.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_get_system_default_version/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_get_system_default_version.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_system_default_version.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_get_system_default_version'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_get_vhost_versions:
    get:
      description: >-
        This function returns the PHP version of every virtual host that a
        reseller controls.


        You can get the version of a single virtual host by providing an
        optional `vhost` name.


        **Note:**

          This document **only** applies to systems that run EasyApache 4.

        **Important:**

          When you disable the [Web Server role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: php_get_vhost_versions
      parameters:
        - description: The PHP Virtual Hostname.
          in: query
          name: vhost
          required: false
          schema:
            example: your-domain.test
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_get_vhost_versions
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects of the virtual host's suspended

                          status, versions, virtual hosts, and accounts.

                          Note: Returns a single object when using the `vhost`
                          parameter.
                        items:
                          properties:
                            account:
                              description: The account's name.
                              example: blee
                              format: username
                              type: string
                            account_owner:
                              description: The account's owner.
                              example: blee
                              format: username
                              type: string
                            documentroot:
                              description: The virtual host's document root.
                              example: /home/blee/public_html
                              format: path
                              type: string
                            homedir:
                              description: The virtual host's home directory.
                              example: /home/blee
                              format: path
                              type: string
                            main_domain:
                              description: |-
                                Whether the virtual host is the primary domain.

                                **Note:**

                                * `1` - The primary domain
                                * `0` - **Not** the primary domain
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            php_fpm:
                              description: |-
                                Whether FPM is enabled on the virtual host.

                                * `1` - PHP-FPM enabled.
                                * `0` - PHP-FPM **not** enabled.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            php_fpm_pool_parms:
                              description: >-
                                An object containing the domain's PHP-FPM
                                parameters.
                              properties:
                                pm_max_children:
                                  description: The maximum number of child pages per pool.
                                  example: 5
                                  minimum: 1
                                  type: integer
                                pm_max_requests:
                                  description: The maximum number of requests per pool.
                                  example: 20
                                  minimum: 1
                                  type: integer
                                pm_process_idle_timeout:
                                  description: >-
                                    A specified time of idleness before the
                                    system kills an FPM child process.
                                  example: 10
                                  minimum: 1
                                  type: integer
                              type: object
                            phpversion_source:
                              description: How the virtual host determines its PHP version.
                              items:
                                properties:
                                  domain:
                                    description: >-
                                      The domain the virtual host inherits its
                                      PHP version from.
                                    example: blee.com
                                    format: domain
                                    type: string
                                  system_default:
                                    description: >-
                                      Whether the virtual host uses the system's
                                      default PHP version.

                                      * `1` - Uses the system default PHP
                                      version.


                                      **Note:**

                                        The function **only** returns this value if true.
                                    enum:
                                      - 1
                                    example: 1
                                    type: integer
                                type: object
                              properties:
                                domain: {}
                              type: array
                            version:
                              description: |-
                                The virtual host's PHP version.
                                * `ea-php72`
                                * `ea-php73`
                                * `ea-php74`
                                * Any custom PHP package name.
                              example: ea-php72
                              type: string
                            vhost:
                              description: The virtual host's name.
                              example: blee.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return virtual host's PHP version
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_get_vhost_versions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_get_vhost_versions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_get_vhost_versions.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_vhost_versions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_get_vhost_versions/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_get_vhost_versions.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_get_vhost_versions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_get_vhost_versions'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_ini_get_user_basic_directives:
    get:
      description: "This function lists a virtual host's basic PHP directives. The Basic Mode section of cPanel's\_[MultiPHP INI Editor](https://go.cpanel.net/cPanelMultiPHPINI)  interface (Home >>\_Software >> MultiPHP INI Editor) also lists these directives.\n\n**Note:**\n\n  This document **only** applies to systems that run EasyApache 4 with MultiPHP enabled.\n\n**Important:**\n\n  When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function."
      operationId: php_ini_get_user_basic_directives
      parameters:
        - description: |-
            The type of `php.ini` file.

            - `home`
            - `vhost`

            **Important:**

             If you set this parameter to `vhost`, you **must** also include the `vhost` parameter.
          in: query
          name: type
          required: true
          schema:
            enum:
              - home
              - vhost
            example: vhost
            type: string
        - description: |-
            The name of a virtual host.

            **Important:**

             If the type value is `vhost`, you **must** use this parameter.
          in: query
          name: vhost
          required: false
          schema:
            example: clearly.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_ini_get_user_basic_directives
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          directives:
                            description: >-
                              An array of the available directives in the
                              `php.ini` file of the selected user's PHP version.
                            items:
                              properties:
                                default_value:
                                  description: The directive's default value.
                                  example: 1
                                  oneOf:
                                    - type: string
                                    - type: boolean
                                    - type: integer
                                    - type: number
                                info:
                                  description: The purpose of the directive.
                                  example: >-
                                    This option enables the URL-aware fopen
                                    wrappers that enable accessing URL object
                                    like files. Default wrappers are provided
                                    for the access of remote files using the ftp
                                    or http protocol, some extensions like zlib
                                    may register additional wrappers.
                                  type: string
                                key:
                                  description: The directive's name.
                                  example: allow_url_fopen
                                  type: string
                                php_ini_mode:
                                  description: >-
                                    The directive's [PHP_INI
                                    mode](http://php.net/manual/en/configuration.changes.modes.php).


                                    * `PHP_INI_SYSTEM`

                                    * `PHP_INI_PERDIR`

                                    * `PHP_INI_ALL`

                                    * `PHPINI_ONLY`
                                  enum:
                                    - PHP_INI_SYSTEM
                                    - PHP_INI_PERDIR
                                    - PHP_INI_ALL
                                    - PHPINI_ONLY
                                  example: PHP_INI_SYSTEM
                                  type: string
                                type:
                                  description: |-
                                    The type of value that the directive uses.

                                    * `string`
                                    * `boolean`
                                    * `integer`
                                    * `float`
                                  enum:
                                    - string
                                    - boolean
                                    - integer
                                    - float
                                  example: integer
                                  type: string
                                value:
                                  description: The directive's current value.
                                  example: 'On'
                                  type: string
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return basic PHP directives
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_ini_get_user_basic_directives \
              type='vhost'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_ini_get_user_basic_directives?type=vhost
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_ini_get_user_basic_directives.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_get_user_basic_directives.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_ini_get_user_basic_directives/,
                {
                    'type' => 'vhost',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            LangPHP_php_ini_get_user_basic_directives.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_get_user_basic_directives.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_ini_get_user_basic_directives',
                array (
                    'type' => 'vhost',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_ini_get_user_content:
    get:
      description: "This function returns the contents of a virtual host's\_`php.ini`\_file.\n\n**Note:**\n\n  This document **only** applies to systems that run EasyApache 4 with MultiPHP enabled.\n\n**Important:**\n\n  When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function."
      operationId: php_ini_get_user_content
      parameters:
        - description: >-
            The type of `php.ini` file.


            * `home`

            * `vhost`


            **Important:**


            If you set this parameter to `vhost`, you **must** also include the
            `vhost` parameter.
          in: query
          name: type
          required: true
          schema:
            example: vhost
            type: string
        - description: |-
            The name of a virtual host.

            **Important:**

             If the type value is `vhost`, you **must** use this parameter.
          in: query
          name: vhost
          required: false
          schema:
            example: clearly.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_ini_get_user_content
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          content:
                            description: >-
                              The contents of the requested user's `php.ini`
                              file.
                            example: >-
                              allow_url_fopen = On\nallow_url_include =
                              On\nasp_tags = Off\ndisplay_errors = On\nenable_dl
                              = Off\nfile_uploads = On\ninclude_path =
                              &quot;.;/path/to/php/pear&quot;\nmax_execution_time
                              = 30\nmax_input_time = 60\nmax_input_vars =
                              1050\nmemory_limit = 32M\nupload_max_filesize = 2M
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return virtual host's php.ini content
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_ini_get_user_content \
              type='vhost'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_ini_get_user_content?type=vhost
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_ini_get_user_content.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_get_user_content.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_ini_get_user_content/,
                {
                    'type' => 'vhost',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_ini_get_user_content.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_get_user_content.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_ini_get_user_content',
                array (
                    'type' => 'vhost',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_ini_get_user_paths:
    get:
      description: >-
        This function lists the `php.ini` file paths for the user's home
        directory and virtual host document roots.


        **Note:**

          This document **only** applies to systems that run EasyApache 4 with MultiPHP enabled.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: php_ini_get_user_paths
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_ini_get_user_paths
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          paths:
                            description: An array of objects of `php.ini` file information.
                            items:
                              properties:
                                account:
                                  description: The account's name.
                                  example: allthethings
                                  type: string
                                documentroot:
                                  description: The virtual host's document root.
                                  example: /home/allthethings/public_html
                                  type: string
                                homedir:
                                  description: The home directory.
                                  example: /home/allthethings/
                                  type: string
                                main_domain:
                                  description: >-
                                    Whether the virtual host is the account's
                                    primary domain.

                                    * `1` - Primary domain.

                                    * `0` - **Not** the primary domain.
                                  enum:
                                    - 1
                                    - 0
                                  example: 1
                                  type: integer
                                path:
                                  description: >-
                                    The name of the virtual host's `php.ini`
                                    file.
                                  example: php.ini
                                  type: string
                                type:
                                  description: |-
                                    The record's type.
                                    * `home`
                                    * `vhost`
                                  enum:
                                    - home
                                    - vhost
                                  example: vhost
                                  type: string
                                version:
                                  description: >-
                                    The default PHP version.

                                    - `ea-php##`, where `##` represents the
                                    major and minor versions of PHP (for
                                    example, `ea-php72` represents PHP 7.2).

                                    - Any custom PHP package name.
                                  example: ea-php72
                                  type: string
                                vhost:
                                  description: The name of the virtual host.
                                  example: clearly.com
                                  format: domain
                                  type: string
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return php.ini file paths
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_ini_get_user_paths
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_ini_get_user_paths
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_ini_get_user_paths.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_get_user_paths.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_ini_get_user_paths/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_ini_get_user_paths.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_get_user_paths.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_ini_get_user_paths'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_ini_set_user_basic_directives:
    get:
      description: >-
        This function sets the values of any basic PHP directive. The *Basic
        Mode* section of cPanel's

        [*MultiPHP INI Editor*](https://go.cpanel.net/whmdocsMultiPHPINIEditor)
        interface (*WHM >> Home >> Software >> MultiPHP INI Editor*) lists these
        directives.


        **Note:**

          This document **only** applies to systems that run EasyApache 4 with MultiPHP enabled.

        **Important:**

          When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: php_ini_set_user_basic_directives
      parameters:
        - description: "The name of a PHP directive and its value.\n\n**Note:**\n\n* To change the directive's value for multiple PHP directives, increment the parameter name. For example, the `directive-1`,\_`directive-2`, and `directive-3`\_parameters.\n* You **must** format values as `<directive>:<value>`  "
          examples:
            multiple:
              summary: Multiple PHP directives.
              value: >-
                directive-1=allow_url_fopen%3A0&directive-2=upload_max_filesize%3A4M&directive-3=post_max_size
            single:
              summary: A single PHP directive.
              value: allow_url_fopen:0
          in: query
          name: directive
          required: true
          schema:
            type: string
        - description: |-
            The type of `php.ini` file.

            * `home`
            * `vhost`

            **Important:**

             If you set this parameter to `vhost`, you **must** also include the `vhost` parameter.
          in: query
          name: type
          required: true
          schema:
            enum:
              - home
              - vhost
            example: vhost
            type: string
        - description: |-
            The name of a virtual host.

            **Important:**

             If the `type` value is `vhost`, you **must** use this parameter.
          in: query
          name: vhost
          required: false
          schema:
            example: clearly.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_ini_set_user_basic_directives
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          LangPHP:
                            description: >-
                              An object containing the virtual host's PHP
                              directive information.
                            properties:
                              path:
                                description: The absolute file path to the `php.ini` file.
                                example: /home/allthethings/public_html/php.ini
                                format: path
                                type: string
                              phpversion:
                                description: The virtual host's installed version of PHP.
                                example: ea-php55
                                type: string
                              type:
                                description: |-
                                  The type of `php.ini` file.

                                  * `home`
                                  * `vhost`
                                enum:
                                  - home
                                  - vhost
                                example: vhost
                                type: string
                              vhost:
                                description: The virtual host's name.
                                example: clearly.com
                                type: string
                            type: object
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update basic PHP directives
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_ini_set_user_basic_directives \
              type='vhost' \
              directive='allow_url_fopen:0'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_ini_set_user_basic_directives?type=vhost&directive=allow_url_fopen%3a0
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_ini_set_user_basic_directives.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_set_user_basic_directives.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_ini_set_user_basic_directives/,
                {
                    'type' => 'vhost',
                    'directive' => 'allow_url_fopen:0',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            LangPHP_php_ini_set_user_basic_directives.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_set_user_basic_directives.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_ini_set_user_basic_directives',
                array (
                    'type' => 'vhost',
                    'directive' => 'allow_url_fopen:0',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_ini_set_user_content:
    get:
      description: |-
        This function changes the contents of a virtual host's `php.ini` file.

        **Note:**

          This document **only** applies to systems that run EasyApache 4 with MultiPHP enabled.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: php_ini_set_user_content
      parameters:
        - description: The content of the `php.ini` file to change.
          in: query
          name: content
          required: true
          schema:
            example: >-
              %5BPHP%5D%0D%0A%3B+About+php.ini%0D%0A%3B+php.ini+is+responsible+for+configuring+many+of+the+aspects+of+PHP%27s+behavior.%0D%0Apcre.backtrack_limit%3D100000
            type: string
        - description: |-
            The type of `php.ini` file.

            * `home`
            * `vhost`

            **Important:**

             If you set this parameter to `vhost`, you **must** also include the `vhost` parameter.
          in: query
          name: type
          required: true
          schema:
            enum:
              - host
              - vhost
            example: vhost
            type: string
        - description: |-
            The name of a virtual host.

            **Important:**

             If the type value is `vhost` , you **must** use this parameter.
          in: query
          name: vhost
          required: false
          schema:
            example: clearly.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_ini_set_user_content
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        description: This value will always be `null`.
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update virtual host's php.ini content
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_ini_set_user_content \
              type='vhost' \
              content='%5BPHP%5D%0D%0A%3B+About+php.ini%0D%0A%3B+php.ini+is+responsible+for+configuring+many+of+the+aspects+of+PHP%27s+behavior.%0D%0Apcre.backtrack_limit%3D100000'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_ini_set_user_content?type=vhost&content=%255BPHP%255D%250D%250A%253B%2bAbout%2bphp.ini%250D%250A%253B%2bphp.ini%2bis%2bresponsible%2bfor%2bconfiguring%2bmany%2bof%2bthe%2baspects%2bof%2bPHP%2527s%2bbehavior.%250D%250Apcre.backtrack_limit%253D100000
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_ini_set_user_content.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_set_user_content.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_ini_set_user_content/,
                {
                    'type' => 'vhost',
                    'content' => '%5BPHP%5D%0D%0A%3B+About+php.ini%0D%0A%3B+php.ini+is+responsible+for+configuring+many+of+the+aspects+of+PHP%27s+behavior.%0D%0Apcre.backtrack_limit%3D100000',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_ini_set_user_content.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_ini_set_user_content.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_ini_set_user_content',
                array (
                    'type' => 'vhost',
                    'content' => '%5BPHP%5D%0D%0A%3B+About+php.ini%0D%0A%3B+php.ini+is+responsible+for+configuring+many+of+the+aspects+of+PHP%27s+behavior.%0D%0Apcre.backtrack_limit%3D100000',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LangPHP/php_set_vhost_versions:
    get:
      description: |-
        This function sets a virtual host's PHP version.

        **Note:**

          This document **only** applies to systems that run EasyApache 4.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: php_set_vhost_versions
      parameters:
        - description: The PHP version of a virtual host.
          in: query
          name: version
          required: true
          schema:
            example: ea-php72
            type: string
        - description: |-
            The virtual host's name.

            **Note:**

              To change the PHP version of multiple virtual hosts, duplicate or increment the parameter name. For example, `vhost-1`, `vhost-2`, and `vhost-3`.
          examples:
            multiple:
              summary: Set a multiple vhosts.
              value: vhost-1=example.com&vhost-2=example2.com&vhost-3=example3.com
            single:
              summary: Set a single vhost.
              value: example.com
          in: query
          name: vhost
          required: true
          schema:
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: php_set_vhost_versions
                    type: string
                  module:
                    description: The name of the module called.
                    example: LangPHP
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          vhosts:
                            description: The names of the changed virtual hosts.
                            items:
                              example: example.com
                              format: domain
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update virtual host's PHP version
      tags:
        - LangPHP
        - PHP Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LangPHP \
              php_set_vhost_versions \
              version='ea-php72' \
              vhost='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LangPHP/php_set_vhost_versions?version=ea-php72&vhost=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LangPHP_php_set_vhost_versions.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_set_vhost_versions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LangPHP/,
                q/php_set_vhost_versions/,
                {
                    'version' => 'ea-php72',
                    'vhost' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LangPHP_php_set_vhost_versions.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LangPHP_php_set_vhost_versions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LangPHP',
                'php_set_vhost_versions',
                array (
                    'version' => 'ea-php72',
                    'vhost' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /LastLogin/get_last_or_current_logged_in_ip:
    get:
      description: >-
        This function returns the IP address of the user who most recently
        logged in.
      operationId: get_last_or_current_logged_in_ip
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_last_or_current_logged_in_ip
                    type: string
                  module:
                    description: The name of the module called.
                    example: LastLogin
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The IP address of the user who most recently logged
                          in.
                        items:
                          example: 192.168.0.1
                          format: ipv4
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          * `1` Success.
                          * `0` Failed. Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return last authenticated login IP address
      tags:
        - LastLogin
        - Login Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LastLogin \
              get_last_or_current_logged_in_ip
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LastLogin/get_last_or_current_logged_in_ip
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            LastLogin_get_last_or_current_logged_in_ip.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LastLogin_get_last_or_current_logged_in_ip.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LastLogin/,
                q/get_last_or_current_logged_in_ip/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            LastLogin_get_last_or_current_logged_in_ip.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LastLogin_get_last_or_current_logged_in_ip.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LastLogin',
                'get_last_or_current_logged_in_ip'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /Leika/leika_get_config:
    get:
      description: >-

        This function returns Leika configuration data. Leika is an internal
        module that cPanel & WHM uses to track access to features.


        **Note:**


        If you do not provide an `item` parameter, this returns the **entire**
        configuration.
      operationId: leika_get_config
      parameters:
        - description: |-

            The feature(s) for which to return configuration keys.

            **Note:**

              * Pass multiple `item` parameters to return multiple features' configuration keys.
              * If an `item` parameter returns an `undefined` key value, the configuration value does not exist or is set to `null`.
          examples:
            cpanel.key1:
              description: Return the `key1` configuration key for the `cpanel` feature.
              value: cpanel.key1
            webmail.key3.subkey1:
              description: >-
                Return the nested `key3.subkey1` configuration key for the
                `webmail` feature.
              value: webmail.key3.subkey1
          in: query
          name: item
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: leika_get_config
                    type: string
                  module:
                    description: The name of the module called.
                    example: Leika
                    type: string
                  result:
                    properties:
                      data:
                        description: The requested configuration data.
                        example:
                          cpanel.key1: enabled
                          webmail.key3:
                            subkey1: active
                            subkey2: inactive
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Leika configuration
      tags:
        - Leika
        - Account Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi Leika leika_get_config item='key1' item='key3'
            uapi --output=jsonpretty \
            --user=username \
            Leika \
            leika_get_config \
            item=cpanel.key1 \
            item=webmail.key3
        - label: URL
          lang: HTTP
          source: >
            https://hostname.example.com:2083/cpsess##########/execute/Leika/leika_get_config?item=cpanel.key1&item=webmail.key3
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Leika_leika_get_config.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Leika_leika_get_config.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Leika/,
                q/leika_get_config/,
                q/item=cpanel.key1/,
                q/item=webmail.key3/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Leika_leika_get_config.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Leika_leika_get_config.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Leika',
                'leika_get_config',
                array('item' => 'cpanel.key1', 'item' => 'webmail.key3')
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: '11.32'
  /Locale/get_attributes:
    get:
      description: >-
        This function retrieves information about the user's current locale
        setting.
      operationId: get_attributes
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_attributes
                    type: string
                  module:
                    description: The name of the module called.
                    example: Locale
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          direction:
                            description: |-
                              The locale's text direction.
                              * `ltr` - left to right.
                              * `rtl` - right to left.
                            enum:
                              - ltr
                              - rtl
                            example: ltr
                            type: string
                          encoding:
                            description: The user's character set.
                            example: utf-8
                            type: string
                          locale:
                            description: The locale's two-letter ISO-3166 code.
                            example: en
                            format: ISO-3166-1 (alpha-2)
                            type: string
                          name:
                            description: The locale's full name.
                            example: English
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return current locale settings
      tags:
        - Locale
        - Language
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Locale \
              get_attributes
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Locale/get_attributes
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Locale_get_attributes.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Locale_get_attributes.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Locale/,
                q/get_attributes/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Locale_get_attributes.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Locale_get_attributes.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Locale',
                'get_attributes'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Locale/list_locales:
    get:
      description: This function lists an account's available interface languages.
      operationId: list_locales
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_locales
                    type: string
                  module:
                    description: The name of the module called.
                    example: Locale
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            direction:
                              description: |-
                                The locale's text direction.
                                * `ltr` - Left to right.
                                * `rtl` - Right to left.
                              enum:
                                - ltr
                                - rtl
                              example: ltr
                              type: string
                            local_name:
                              description: >-
                                The locale's full name, in the locale's
                                language.
                              example: Deutsch
                              type: string
                            locale:
                              description: >-
                                The locale's two-letter [ISO-3166
                                code](http://www.iso.org/iso/country_codes.htm).
                              example: de
                              format: ISO-3166-1 (alpha-2)
                              type: string
                            name:
                              description: The locale's full name.
                              example: German
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return available locales
      tags:
        - Locale
        - Language
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Locale \
              list_locales
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Locale/list_locales
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Locale_list_locales.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Locale_list_locales.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Locale/,
                q/list_locales/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Locale_list_locales.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Locale_list_locales.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Locale',
                'list_locales'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Locale/set_locale:
    get:
      description: This function sets the account's locale.
      operationId: set_locale
      parameters:
        - description: >-
            The locale's abbreviated name according to UAPI's
            `Locale::list_locales` function.
          in: query
          name: locale
          required: true
          schema:
            example: en
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_locale
                    type: string
                  module:
                    description: The name of the module called.
                    example: Locale
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update cPanel account locale
      tags:
        - Locale
        - Language
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Locale \
              set_locale \
              locale='en'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Locale/set_locale?locale=en
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Locale_set_locale.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Locale_set_locale.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Locale/,
                q/set_locale/,
                {
                    'locale' => 'en',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Locale_set_locale.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Locale_set_locale.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Locale',
                'set_locale',
                array (
                    'locale' => 'en',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /LogManager/get_settings:
    get:
      description: This function retrieves the account's log archival settings.
      operationId: get_settings
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: LogManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          archive_logs:
                            description: >-
                              Whether the system archives log files to your home
                              directory.

                              * `1` — Archives the logs.

                              * `0` — Does **not** archive the logs.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          prune_archive:
                            description: >-
                              Whether the system removes the previous month's
                              archived log files from your home directory.

                              * `1` — Removes the logs.

                              * `0` — Does **not** remove the logs.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Retrieve cPanel account's log archival settings
      tags:
        - LogManager
        - Logs
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LogManager \
              get_settings
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LogManager/get_settings
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LogManager_get_settings.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LogManager_get_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LogManager/,
                q/get_settings/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LogManager_get_settings.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LogManager_get_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LogManager',
                'get_settings'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /LogManager/list_archives:
    get:
      description: This function returns a list of the user's archive files.
      operationId: list_archives
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_archives
                    type: string
                  module:
                    description: The name of the module called.
                    example: LogManager
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contain information about the
                          archive files. These files reside in the cPanel user's
                          `~/logs` directory.
                        items:
                          properties:
                            file:
                              description: The archive file's name.
                              example: domain.com-May-2019.gz
                              type: string
                            mtime:
                              description: The archive file's last modified date.
                              example: 1557835866
                              format: unix_timestamp
                              type: integer
                            path:
                              description: The archive file's path.
                              example: /home/user/logs/domain.com-May-2019.gz
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's archive files list
      tags:
        - LogManager
        - Logs
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LogManager \
              list_archives
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LogManager/list_archives
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LogManager_list_archives.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LogManager_list_archives.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LogManager/,
                q/list_archives/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LogManager_list_archives.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LogManager_list_archives.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LogManager',
                'list_archives'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /LogManager/set_settings:
    get:
      description: >-
        This function saves the account's log archive settings.


        **Note:**


        You **must** pass either the `archive_logs` or the `prune_archives`
        parameter.
      operationId: set_settings
      parameters:
        - description: "Whether to\_archive log files to your home directory after the\nsystem processes statistics.\n* `1` — Archive the logs.\n* `0` — Do **not** archive the logs.\n\n**Note:**\n\n* This parameter defaults to the `archive-logs` setting's value in the user's `~/.cpanel-logs` file.\n* If this file does **not** exist, this parameter defaults to the `default_archive-logs` key's value in the [`cpanel.config`](https://go.cpanel.net/cpanelconfiginvalid) file."
          in: query
          name: archive_logs
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            Whether to remove the previous month's archived logs from the
            `~/logs directory` at the end of each month.

            * `1` — Remove the logs.

            * `0` — Do **not** remove the logs.


            **Note:**


            * This parameter defaults to the `remove-old-archived-logs`
            setting's value in the user's `~/.cpanel-logs` file.

            * If this file doesn't exist, this parameter defaults to the
            `default_remove-old-archive-logs` key's value in the
            [`cpanel.config`](https://go.cpanel.net/cpanelconfiginvalid) file.
          in: query
          name: prune_archive
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: LogManager
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Save cPanel account's log archive settings
      tags:
        - LogManager
        - Logs
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              LogManager \
              set_settings
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/LogManager/set_settings
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file LogManager_set_settings.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/LogManager_set_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/LogManager/,
                q/set_settings/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file LogManager_set_settings.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/LogManager_set_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'LogManager',
                'set_settings'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Mailboxes/expunge_mailbox_messages:
    get:
      description: This function marks the selected mail messages as deleted.
      operationId: expunge_mailbox_messages
      parameters:
        - description: The email account's name.
          examples:
            _mainaccount:
              summary: >-
                The `_mainaccount` alias, which represents the cPanel user's
                mailbox.
              value: _mainaccount@example.com
            cpanel-user:
              summary: The cPanel user's account name.
              value: example
            email:
              summary: A valid email account.
              value: user@example.com
          in: query
          name: account
          required: true
          schema:
            anyOf:
              - format: email
                type: string
              - format: username
                type: string
        - description: >-
            The mailbox to operate on.


            **Note:**


            * Use the `Mailboxes::get_mailbox_status_list` function to list
            possible values for the mailbox parameter.

            * Because you cannot escape wildcard characters such as (`*`), we
            recommend that you use functions that use the `mailbox_guid`
            parameter instead. For example, the
            `Mailboxes::expunge_messages_for_mailbox_guid` function.
          in: query
          name: mailbox
          required: true
          schema:
            example: INBOX.user@example_com
            type: string
        - description: >-
            The Dovecot query to execute.


            **Note:**


            The query parameter prevents accidental removal of all messages in
            the mailbox. For more information, read Dovecot's [Search
            Query](http://wiki2.dovecot.org/Tools/Doveadm/SearchQuery)
            documentation.
          in: query
          name: query
          required: true
          schema:
            example: savedbefore 52w
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: expunge_mailbox_messages
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mailboxes
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete selected messages in mailbox
      tags:
        - Mailboxes
        - Mailbox Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mailboxes \
              expunge_mailbox_messages \
              account='_mainaccount@example.com' \
              mailbox='INBOX.user@example_com' \
              query='savedbefore 52w'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mailboxes/expunge_mailbox_messages?account=_mainaccount%40example.com&mailbox=INBOX.user%40example_com&query=savedbefore%2052w
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mailboxes_expunge_mailbox_messages.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mailboxes_expunge_mailbox_messages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mailboxes/,
                q/expunge_mailbox_messages/,
                {
                    'account' => '_mainaccount@example.com',
                    'mailbox' => 'INBOX.user@example_com',
                    'query' => 'savedbefore 52w',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mailboxes_expunge_mailbox_messages.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mailboxes_expunge_mailbox_messages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mailboxes',
                'expunge_mailbox_messages',
                array (
                    'account' => '_mainaccount@example.com',
                    'mailbox' => 'INBOX.user@example_com',
                    'query' => 'savedbefore 52w',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /Mailboxes/expunge_messages_for_mailbox_guid:
    get:
      description: This function marks the selected mailbox's messages as deleted.
      operationId: expunge_messages_for_mailbox_guid
      parameters:
        - description: The email account's name.
          examples:
            _mainaccount:
              summary: >-
                The `_mainaccount` alias, which represents the cPanel user's
                mailbox.
              value: _mainaccount@example.com
            cpanel-user:
              summary: The cPanel user's account name.
              value: example
            email:
              summary: A valid email account.
              value: user@example.com
          in: query
          name: account
          required: true
          schema:
            anyOf:
              - format: email
                type: string
              - format: username
                type: string
        - description: >-
            The mailbox's globally unique identifier (GUID).


            Use the `Mailboxes::get_mailbox_status_list` function to list
            possible values for the `mailbox_guid` parameter.
          in: query
          name: mailbox_guid
          required: true
          schema:
            example: 2550860f0c58d158c92a000044f0d230
            type: string
        - description: >-
            The query to select which messages you wish to remove from the
            mailbox.
          in: query
          name: query
          required: true
          schema:
            example: savedbefore 52w
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: expunge_messages_for_mailbox_guid
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mailboxes
                    type: string
                  result:
                    properties:
                      data:
                        properties: {}
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete selected messages in mailbox by GUID
      tags:
        - Mailboxes
        - Mailbox Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mailboxes \
              expunge_messages_for_mailbox_guid \
              account='_mainaccount@example.com' \
              mailbox_guid='2550860f0c58d158c92a000044f0d230' \
              query='savedbefore 52w'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mailboxes/expunge_messages_for_mailbox_guid?account=_mainaccount%40example.com&mailbox_guid=2550860f0c58d158c92a000044f0d230&query=savedbefore%2052w
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            Mailboxes_expunge_messages_for_mailbox_guid.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mailboxes_expunge_messages_for_mailbox_guid.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mailboxes/,
                q/expunge_messages_for_mailbox_guid/,
                {
                    'account' => '_mainaccount@example.com',
                    'mailbox_guid' => '2550860f0c58d158c92a000044f0d230',
                    'query' => 'savedbefore 52w',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            Mailboxes_expunge_messages_for_mailbox_guid.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mailboxes_expunge_messages_for_mailbox_guid.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mailboxes',
                'expunge_messages_for_mailbox_guid',
                array (
                    'account' => '_mainaccount@example.com',
                    'mailbox_guid' => '2550860f0c58d158c92a000044f0d230',
                    'query' => 'savedbefore 52w',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /Mailboxes/get_mailbox_status_list:
    get:
      description: >-
        This function lists the account's mailbox size and globally unique
        identifier (GUID) by folder.
      operationId: get_mailbox_status_list
      parameters:
        - description: The email account for which you you wish to request the status.
          in: query
          name: account
          required: true
          schema:
            example: user@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_mailbox_status_list
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mailboxes
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          - guid: 1234560f0c58d158c92a000044f0d230
                            mailbox: INBOX.marla_singer@example_com
                            messages: 0
                            vsize: 0
                          - guid: 11234560f0c58d158c92a000044f0d23
                            mailbox: INBOX.angel_face@example_com
                            messages: 0
                            vsize: 0
                          - guid: 111234560f0c58d158c92a000044f0d2
                            mailbox: INBOX.tyler_durden@example_com
                            messages: 0
                            vsize: 0
                          - guid: 1111234560f0c58d158c92a000044f0d
                            mailbox: INBOX.Trash
                            messages: 0
                            vsize: 0
                          - guid: 11111234560f0c58d158c92a000044f0
                            mailbox: INBOX.narrator@example_com
                            messages: 0
                            vsize: 0
                          - guid: 111111234560f0c58d158c92a000044f
                            mailbox: INBOX
                            messages: 0
                            vsize: 0
                          - guid: 1111111234560f0c58d158c92a000004
                            mailbox: INBOX.Sent
                            messages: 0
                            vsize: 0
                          - guid: 11111111234560f0c58d158c92a00000
                            mailbox: INBOX.Drafts
                            messages: 0
                            vsize: 0
                          - guid: 111111111234560f0c58d158c92a0000
                            mailbox: INBOX.robert_paulsen@example_com
                            messages: 0
                            vsize: 0
                        items:
                          properties:
                            guid:
                              description: The mailbox GUID.
                              example: 1234560f0c58d158c92a000044f0d230
                              type: string
                            mailbox:
                              description: The mailbox name.
                              example: INBOX.marla_singer@example_com
                              type: string
                            messages:
                              description: The number of messages in the folder.
                              example: 410
                              minimum: 0
                              type: integer
                            vsize:
                              description: The size of the folder, in bytes.
                              example: 1052299
                              format: bytes
                              minimum: 0
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's mailbox status
      tags:
        - Mailboxes
        - Mailbox Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mailboxes \
              get_mailbox_status_list \
              account='user@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mailboxes/get_mailbox_status_list?account=user%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mailboxes_get_mailbox_status_list.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mailboxes_get_mailbox_status_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mailboxes/,
                q/get_mailbox_status_list/,
                {
                    'account' => 'user@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mailboxes_get_mailbox_status_list.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mailboxes_get_mailbox_status_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mailboxes',
                'get_mailbox_status_list',
                array (
                    'account' => 'user@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /Mailboxes/has_utf8_mailbox_names:
    get:
      description: >-
        This function determines whether a cPanel user currently uses UTF-8
        character-encoded mailbox names.
      operationId: has_utf8_mailbox_names
      parameters:
        - description: |-
            The user for whom to determine whether they currently use UTF-8
            character-encoded mailbox names.

            **Note:**

            This parameter defaults to the currently-logged in user.
          in: query
          name: user
          required: false
          schema:
            example: user
            format: username
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_utf8_mailbox_names
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mailboxes
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            description: >-
                              Whether the user currently uses UTF-8
                              character-encoded mailbox names.

                              * `1` - Uses UTF-8 character-encoded mailbox
                              names.

                              * `0` - Does **not** use UTF-8 character-encoded
                              mailbox names.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return if cPanel account's mailboxes use UTF-8
      tags:
        - Mailboxes
        - Mailbox Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mailboxes \
              has_utf8_mailbox_names
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mailboxes/has_utf8_mailbox_names
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mailboxes_has_utf8_mailbox_names.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mailboxes_has_utf8_mailbox_names.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mailboxes/,
                q/has_utf8_mailbox_names/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mailboxes_has_utf8_mailbox_names.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mailboxes_has_utf8_mailbox_names.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mailboxes',
                'has_utf8_mailbox_names'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Mailboxes/set_utf8_mailbox_names:
    get:
      description: >-
        This function enables or disables UTF-8-encoded mailbox names on
        Roundcube webmail for a cPanel user's email accounts.
      operationId: set_utf8_mailbox_names
      parameters:
        - description: |-
            Whether to enable or disable UTF-8 character-encoded mailbox
            names.

            * `1` - Enable UTF-8 encoded mailbox names.
            * `0` - Disable UTF-8 encoded mailbox names.
          in: query
          name: enabled
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_utf8_mailbox_names
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mailboxes
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          success:
                            description: >-
                              Whether the system changed mailbox name setting's
                              status.

                              * `1` - Success.

                              * `0` - Failure.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable or disable Webmail mailbox UTF-8 encoding
      tags:
        - Mailboxes
        - Mailbox Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mailboxes \
              set_utf8_mailbox_names \
              enabled='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mailboxes/set_utf8_mailbox_names?enabled=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mailboxes_set_utf8_mailbox_names.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mailboxes_set_utf8_mailbox_names.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mailboxes/,
                q/set_utf8_mailbox_names/,
                {
                    'enabled' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mailboxes_set_utf8_mailbox_names.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mailboxes_set_utf8_mailbox_names.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mailboxes',
                'set_utf8_mailbox_names',
                array (
                    'enabled' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 78
  /Market/cancel_pending_ssl_certificate:
    get:
      description: >-
        This function cancels an order and removes the polling for a pending
        certificate.
      operationId: cancel_pending_ssl_certificate
      parameters:
        - description: The ID of the ordered item to cancel.
          in: query
          name: order_item_id
          required: true
          schema:
            example: '10427508'
            type: string
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: cancel_pending_ssl_certificate
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        description: An object containing order information.
                        items:
                          properties:
                            created_time:
                              description: When the system created the order.
                              example: 1458061262
                              format: unix_timestamp
                              type: integer
                            csr:
                              description: The text of the Certificate Request (CSR).
                              example: >
                                -----BEGIN CERTIFICATE REQUEST-----

                                MIIC0TCCAbkCAQAwGzEZMBcGA1UEAxMQY29icmFzc2x0ZXN0Lm9yZzCCASIwDQYJ

                                KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKsZWNkF8hjUjoCDNNSkXO0CTp/z/0pu

                                iFiDMzdFAa6mg5wr97EwRBCniSvJEJ1rdQ0Sus2AAK9hg7TeZAWbFf97r7mS0chm

                                r27Ht9qfit3r0EJLYcjRjnZ/wj21ZhsdjQIjjTRiI1TvXtOQRAQpWNsGxK7QV3Q3

                                njkSM/gTpteHuC3JAQxbpv72B+IjiyzUZr8DOUOoB94IO5iP27UXnkSbExInDvqu

                                K43zVGYNU0Zev20A6SBWU3BALjWXHlYjwbC109FxOWNssHTg3xvePsBxzk6BFDcT

                                S/QAS0tFYPfHZKmCBg6irBGFOdTjSDVmFk8zAoFYibev0juRJCMn2XsCAwEAAaBx

                                MG8GCSqGSIb3DQEJDjFiMGAwXgYDVR0RAQH/BFQwUoIQY29icmFzc2x0ZXN0Lm9y

                                Z4IUd3d3LmNvYnJhc3NsdGVzdC5vcmeCEWNwYW5lbHNzbHRlc3Qub3JnghV3d3cu

                                Y3BhbmVsc3NsdGVzdC5vcmcwDQYJKoZIhvcNAQELBQADggEBAG0l4aChMO1rSmgR

                                SF5qlKu785n5YS5rTE9ev+OFu0952DvjVAB0R8y5+TZSXfg+9CH7pa2VDosAEYF4

                                yjUJOuiwwVEUD/9Qhrls/2xT8KKk0QSxuWmOgP2YQy/QRH+W7ykoigtiWdXEIUuF

                                iJmeavS8JOYt560366V3dw7YT+QstUHQ7UlGEFDeWQI3osUN1wDrtW5qcaq09Q/G

                                TcphzXrRkL5lRjKXKLIcY/HVYzOnoEX30ALX2I3bJ9s4IMRfpnhTqLmWalcr+4vq

                                vqVnlB0B/nXf/qaB/xvxmEtSGx/GZ/8Gsrf5PB7GhRuStUtJoXcLuADK0bgug3X2

                                GxEruS4=

                                -----END CERTIFICATE REQUEST-----
                              format: base64 certificate
                              type: string
                            domains:
                              description: A list of domains on the certificate.
                              example:
                                - example1.com
                                - example2.com
                              items:
                                format: domain
                                type: string
                              type: array
                            expired:
                              description: >-
                                Whether the system has deleted the item from the
                                pending queue.

                                * `1` - Deleted.

                                * `0` - **Not** deleted.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            first_poll_time:
                              description: >-
                                The first time that the system polled the
                                provider for the certificate.
                              example: 1458061262
                              format: unix_timestamp
                              type: integer
                            last_poll_time:
                              description: |-
                                The last time that the system polled the
                                provider for the certificate. 
                              example: 1458061262
                              format: unix_timestamp
                              type: integer
                            last_status_code:
                              description: >-
                                The last status code of the order.

                                * `CertificateNotFound` - The system cannot
                                locate the specified certificate.

                                * `RequiresApproval` - The specified certificate
                                requires approval.

                                * `OrderCanceled` - The system cancelled the
                                order of the specified certificate.

                                * `OrderItemCanceled` - The system cancelled the
                                order item of the specified certificate.
                              enum:
                                - CertificateNotFound
                                - RequiresApproval
                                - OrderCanceled
                                - OrderItemCanceled
                              example: CertificateNotFound
                              type: string
                            order_id:
                              description: The ID of the order.
                              example: '1392472'
                              type: string
                            order_item_id:
                              description: The ID of the ordered item.
                              example: '10427508'
                              type: string
                            product_id:
                              description: The product's ID.
                              example: '143'
                              type: string
                            provider:
                              description: The cPanel Market provider's name.
                              example: cPStore
                              type: string
                            status:
                              description: |-
                                The status of the order.
                                * `confirmed` - Payment confirmed.
                                * `unconfirmed` - Payment **not** confirmed.
                              enum:
                                - confirmed
                                - unconfirmed
                              example: confirmed
                              type: string
                            support_uri:
                              description: >-
                                The URI of the cPanel Market Provider's support
                                site.
                              example: http://support.example.com/
                              format: uri
                              type: string
                            vhost_names:
                              description: A list of virtual host names.
                              example:
                                - abcde.com
                              items:
                                type: string
                              type: array
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings

                          describe non-critical failures or other problematic
                          conditions

                          noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete an order
      tags:
        - Market
        - SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              cancel_pending_ssl_certificate \
              provider='cPStore' \
              order_item_id='10427508'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/cancel_pending_ssl_certificate?provider=cPStore&order_item_id=10427508
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_cancel_pending_ssl_certificate.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_cancel_pending_ssl_certificate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/cancel_pending_ssl_certificate/,
                {
                    'provider' => 'cPStore',
                    'order_item_id' => '10427508',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_cancel_pending_ssl_certificate.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_cancel_pending_ssl_certificate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'cancel_pending_ssl_certificate',
                array (
                    'provider' => 'cPStore',
                    'order_item_id' => '10427508',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/create_shopping_cart:
    get:
      description: >-
        This function creates a shopping cart with which the system sends an
        order to the cPanel Store. Typically, the system will send shopping cart
        orders for SSL certificates to UAPI’s `Market::request_ssl_certificates`
        function.
      operationId: create_shopping_cart
      parameters:
        - description: The access token to connect to the provider.
          in: query
          name: access_token
          required: true
          schema:
            example: 1a676e6f-99fc-11e6-9ab6-e60a769b73bc
            format: uuid
            type: string
        - description: |-
            The items to add to the shopping cart.

            **Note**:

              The value is a JSON string.

              This object has one required key, `product_id`, which is a string.

              The other keys/values in this object vary depending on the provider.
          example:
            - >-
              {"product_id":123456,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}
            - >-
              {"product_id":123457,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}
          explode: true
          in: query
          name: item
          required: true
          schema:
            items:
              format: json
              type: string
            type: array
          style: form
        - description: "The\_cPanel Market provider’s name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
        - description: >-
            The location to which the provider directs the user after the
            checkout process is complete.
          in: query
          name: url_after_checkout
          required: true
          schema:
            example: http://www.example.com/thenextplace
            format: url
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_shopping_cart
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          checkout_url:
                            description: The location of the provider’s check out page.
                            example: http://www.example.com/checkout
                            format: url
                            type: string
                          order_id:
                            description: The order’s ID.
                            example: '8765309'
                            type: string
                          order_items:
                            description: >-
                              An array of objects that contain information about
                              Items in the shopping cart. The function returns
                              these values in the order in which you called
                              them. This array of objects returns values that
                              vary between providers.
                            items:
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create shopping cart
      tags:
        - Market
        - Market Integration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              create_shopping_cart \
              provider='cPStore' \
              access_token='1a676e6f-99fc-11e6-9ab6-e60a769b73bc' \
              url_after_checkout='http://www.example.com/thenextplace' \
              item='{"product_id":123456,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}' item='{"product_id":123457,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/create_shopping_cart?provider=cPStore&access_token=1a676e6f-99fc-11e6-9ab6-e60a769b73bc&url_after_checkout=http%3a%2f%2fwww.example.com%2fthenextplace&item=%7b%22product_id%22%3a123456%2c%22provider-specfic-key%22%3a%22provider-specfic-value%22%2c%22another-provider-specfic-key%22%3a%22another-provider-specfic-value%22%7d&item=%7b%22product_id%22%3a123457%2c%22provider-specfic-key%22%3a%22provider-specfic-value%22%2c%22another-provider-specfic-key%22%3a%22another-provider-specfic-value%22%7d
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_create_shopping_cart.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_create_shopping_cart.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/create_shopping_cart/,
                {
                    'provider' => 'cPStore',
                    'access_token' => '1a676e6f-99fc-11e6-9ab6-e60a769b73bc',
                    'url_after_checkout' => 'http://www.example.com/thenextplace',
                    'item' => '{"product_id":123456,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}'&item='{"product_id":123457,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_create_shopping_cart.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_create_shopping_cart.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'create_shopping_cart',
                array (
                    'provider' => 'cPStore',
                    'access_token' => '1a676e6f-99fc-11e6-9ab6-e60a769b73bc',
                    'url_after_checkout' => 'http://www.example.com/thenextplace',
                    'item' => '{"product_id":123456,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}'&item='{"product_id":123457,"provider-specfic-key":"provider-specfic-value","another-provider-specfic-key":"another-provider-specfic-value"}',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 62
  /Market/get_all_products:
    get:
      description: "This function lists all products available through all enabled\_cPanel Market providers."
      operationId: Market-get_all_products
      parameters: []
      responses:
        '200':
          content:
            application/json:
              examples:
                ssl_certificate:
                  description: product_group=ssl_certificate
                  value:
                    apiversion: 3
                    func: get_all_products
                    module: Market
                    result:
                      data:
                        - base_name: ''
                          billing_type: one-time
                          description: >-
                            An extended-validated (EV) SSL certificate signed by
                            COMODO.
                          display_name: Comodo EV SSL Certificate
                          enabled: 1
                          icon: >-
                            PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNTUwIiB3aWR0aD0iNDE3LjE2Ij48ZyBmaWxsPSIjMzViNTZjIj48cGF0aCBkPSJNNDE0LjM5NiAyNmM3LTExIDAtMjYtMTMtMjZIMTg3LjM5NWMtNDUgMC04MSAxMi0xMDcgMzZzLTQyIDU4LTQ2IDEwM2wtMTAgMTE2Yy00IDQ1IDUgNzkgMjggMTAzIDIyIDI0IDU2IDM2IDEwMSAzNmg0OXYtMWM5LjAwMS0xIDE1LjAwMS03IDE2LjAwMS0xN2w1LTU3YzAtMTEtNy0xOS0xOC4wMDEtMTloLTI3Yy0xNyAwLTMwLTQtMzctMTItNy03LTEwLTIwLTgtMzlsOS0xMDRjMi0xOCA3LTMxIDE1LTM5czIxLTEyIDM5LTEyaDE0NC4wMDFjMTcgMCAzNC05IDQ0LTIzbDMwLTQ1Ii8+PHBhdGggZD0iTTMuMzk1IDUyNGMtOCAxMS0xIDI2IDEyIDI2aDIxNy4wMDFjNDUgMCA4MS0xMiAxMDgtMzYgMjYtMjQgNDEtNTggNDUtMTAybDExLTExN2MzLTQ1LTYtNzktMjgtMTAzLTIzLTI0LTU2LTM2LTEwMS0zNmgtNDl2MWMtMTAuMDAxIDEtMTUuMDAxIDctMTYuMDAxIDE3bC01IDU4Yy0xIDEwIDcgMTggMTcuMDAxIDE4aDI3YzE4IDAgMzAgNCAzNyAxMnMxMCAyMSA5IDM5bC0xMCAxMDRjLTEgMTktNiAzMi0xNCAzOS05IDgtMjIgMTItNDAgMTJINzYuMzk1Yy0xNyAwLTMzIDktNDMgMjRsLTMwIDQ0Ii8+PC9nPjwvc3ZnPg==
                          icon_mime_type: image/svg+xml
                          license_term: 0
                          max_users: null
                          maximum_server_price: null
                          minimum_server_price: null
                          price: null
                          price_unit: USD
                          product: Comodo EV Certificate
                          product_category: N/A
                          product_group: ssl_certificate
                          product_id: 155
                          provider_display_name: cPanel Store
                          provider_name: cPStore
                          recommended: 0
                          requires_ip: 0
                          x_certificate_term:
                            - 1
                            - year
                          x_identity_verification:
                            - label: Organization Name
                              name: organizationName
                            - is_optional: 1
                              label: Department Name
                              name: organizationalUnitName
                            - description: >-
                                9 consecutive digits or “##-###-####” (More
                                information (https://go.cpanel.net/get_duns))
                              is_optional: 1
                              label: >-
                                Dun & Bradstreet D-U-N-S (Data Universal
                                Numbering System) Number
                              name: duns_number
                              pattern: ^[0-9]{2}(?:-[0-9]{3}-[0-9]{4}|[0-9]{7})$
                            - label: Street Address
                              name: streetAddress
                            - label: City
                              name: localityName
                            - label: State or Province
                              name: stateOrProvinceName
                            - label: Postal Code
                              name: postalCode
                            - label: Country Code
                              name: countryName
                              type: country_code
                            - label: Representative’s Given (First) Name
                              name: rep_forename
                            - label: Representative’s Surname (Last Name)
                              name: rep_surname
                            - label: Representative’s Email Address
                              name: rep_email_address
                              type: email
                            - description: >-
                                This should be one of the organization’s
                                publicly-listed telephone numbers.
                              is_optional: 1
                              label: Representative’s Telephone Number
                              name: rep_telephone
                              type: tel
                            - description: >-
                                Consult the EV SSL Certificate Guidelines
                                (https://cabforum.org/extended-validation/) for
                                more information about this field’s options.
                              label: Business Category
                              name: business_category
                              options:
                                - - b
                                  - >-
                                    Incorporated Business (“Private
                                    Organization”)
                                - - d
                                  - >-
                                    Non-incorporated Business (“Business
                                    Entity”)
                                - - c
                                  - Government Entity (“Government Entity”)
                              type: choose_one
                            - is_optional: 1
                              label: >-
                                City Where Incorporated (JOI (Jurisdiction of
                                Incorporation))
                              name: joi_locality_name
                            - is_optional: 1
                              label: >-
                                State or Province Where Incorporated (JOI
                                (Jurisdiction of Incorporation))
                              name: joi_state_or_province_name
                            - label: >-
                                Country Code Where Incorporated (JOI
                                (Jurisdiction of Incorporation))
                              name: joi_country_name
                              type: country_code
                            - is_optional: 1
                              label: Date of Incorporation
                              name: date_of_incorporation
                              type: date
                            - is_optional: 1
                              label: Assumed Name (DBA (Doing Business As))
                              name: assumed_name
                          x_max_http_redirects: 0
                          x_payment_trigger: checkout
                          x_price_per_domain: 108
                          x_price_per_domain_maximum: 1080
                          x_price_per_domain_minimum: 108
                          x_ssl_per_domain_pricing: 1
                          x_supports_dns_dcv: 1
                          x_validation_type: ev
                          x_warn_after: 604800
                        - base_name: ''
                          billing_type: one-time
                          description: >-
                            An organization-validated (OV) SSL certificate
                            signed by COMODO.
                          display_name: Comodo OV SSL Certificate
                          enabled: 1
                          icon: >-
                            PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNTUwIiB3aWR0aD0iNDE3LjE2Ij48ZyBmaWxsPSIjMzViNTZjIj48cGF0aCBkPSJNNDE0LjM5NiAyNmM3LTExIDAtMjYtMTMtMjZIMTg3LjM5NWMtNDUgMC04MSAxMi0xMDcgMzZzLTQyIDU4LTQ2IDEwM2wtMTAgMTE2Yy00IDQ1IDUgNzkgMjggMTAzIDIyIDI0IDU2IDM2IDEwMSAzNmg0OXYtMWM5LjAwMS0xIDE1LjAwMS03IDE2LjAwMS0xN2w1LTU3YzAtMTEtNy0xOS0xOC4wMDEtMTloLTI3Yy0xNyAwLTMwLTQtMzctMTItNy03LTEwLTIwLTgtMzlsOS0xMDRjMi0xOCA3LTMxIDE1LTM5czIxLTEyIDM5LTEyaDE0NC4wMDFjMTcgMCAzNC05IDQ0LTIzbDMwLTQ1Ii8+PHBhdGggZD0iTTMuMzk1IDUyNGMtOCAxMS0xIDI2IDEyIDI2aDIxNy4wMDFjNDUgMCA4MS0xMiAxMDgtMzYgMjYtMjQgNDEtNTggNDUtMTAybDExLTExN2MzLTQ1LTYtNzktMjgtMTAzLTIzLTI0LTU2LTM2LTEwMS0zNmgtNDl2MWMtMTAuMDAxIDEtMTUuMDAxIDctMTYuMDAxIDE3bC01IDU4Yy0xIDEwIDcgMTggMTcuMDAxIDE4aDI3YzE4IDAgMzAgNCAzNyAxMnMxMCAyMSA5IDM5bC0xMCAxMDRjLTEgMTktNiAzMi0xNCAzOS05IDgtMjIgMTItNDAgMTJINzYuMzk1Yy0xNyAwLTMzIDktNDMgMjRsLTMwIDQ0Ii8+PC9nPjwvc3ZnPg==
                          icon_mime_type: image/svg+xml
                          license_term: 0
                          max_users: null
                          maximum_server_price: null
                          minimum_server_price: null
                          price: null
                          price_unit: USD
                          product: Comodo OV Certificate
                          product_category: N/A
                          product_group: ssl_certificate
                          product_id: 217
                          provider_display_name: cPanel Store
                          provider_name: cPStore
                          recommended: 0
                          requires_ip: 0
                          x_certificate_term:
                            - 1
                            - year
                          x_identity_verification:
                            - label: Organization Name
                              name: organizationName
                            - is_optional: 1
                              label: Department Name
                              name: organizationalUnitName
                            - description: >-
                                9 consecutive digits or “##-###-####” (More
                                information (https://go.cpanel.net/get_duns))
                              is_optional: 1
                              label: >-
                                Dun & Bradstreet D-U-N-S (Data Universal
                                Numbering System) Number
                              name: duns_number
                              pattern: ^[0-9]{2}(?:-[0-9]{3}-[0-9]{4}|[0-9]{7})$
                            - label: Street Address
                              name: streetAddress
                            - label: City
                              name: localityName
                            - label: State or Province
                              name: stateOrProvinceName
                            - label: Postal Code
                              name: postalCode
                            - label: Country Code
                              name: countryName
                              type: country_code
                            - label: Representative’s Given (First) Name
                              name: rep_forename
                            - label: Representative’s Surname (Last Name)
                              name: rep_surname
                            - label: Representative’s Email Address
                              name: rep_email_address
                              type: email
                            - description: >-
                                This should be one of the organization’s
                                publicly-listed telephone numbers.
                              is_optional: 1
                              label: Representative’s Telephone Number
                              name: rep_telephone
                              type: tel
                          x_max_http_redirects: 0
                          x_payment_trigger: checkout
                          x_price_per_domain: 36
                          x_price_per_domain_maximum: 360
                          x_price_per_domain_minimum: 36
                          x_price_per_wildcard_domain: '150.00'
                          x_price_per_wildcard_domain_maximum: '1500.00'
                          x_price_per_wildcard_domain_minimum: '150.00'
                          x_ssl_per_domain_pricing: 1
                          x_supports_dns_dcv: 1
                          x_validation_type: ov
                          x_warn_after: 604800
                          x_wildcard_parent_domain_free: 1
                        - base_name: ''
                          billing_type: one-time
                          description: >-
                            A domain-validated (DV) SSL certificate signed by
                            cPanel.
                          display_name: cPanel DV SSL Certificate
                          enabled: 1
                          icon: >-
                            PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNTlwdCIgaGVpZ2h0PSIzMjAiIHZpZXdCb3g9IjAgMCAzNTkgMjQwIj48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGQ9Ik0xMjMgMGgyMzUuMzd2MjQwSDEyM3ptMCAwIi8+PC9jbGlwUGF0aD48L2RlZnM+PHBhdGggZD0iTTg5LjY5IDU5LjEwMmg2Ny44MDJsLTEwLjUgNDAuMmMtMS42MDUgNS42LTQuNjA1IDEwLjEtOSAxMy41LTQuNDAyIDMuNC05LjUwNCA1LjA5Ni0xNS4zIDUuMDk2aC0zMS41Yy03LjIgMC0xMy41NSAyLjEwMi0xOS4wNSA2LjMtNS41MDUgNC4yLTkuMzUzIDkuOTA0LTExLjU1MiAxNy4xMDMtMS40IDUuNDAzLTEuNTUgMTAuNS0uNDUgMTUuMzAyIDEuMDk4IDQuNzk2IDMuMDQ3IDkuMDUgNS44NTIgMTIuNzUgMi43OTcgMy43MDMgNi40IDYuNjUyIDEwLjc5NyA4Ljg1IDQuMzk3IDIuMiA5LjE5OCAzLjI5OCAxNC40IDMuMjk4aDE5LjJjMy42MDIgMCA2LjU0NyAxLjQ1MyA4Ljg1MiA0LjM1MiAyLjI5NyAyLjkwMiAyLjk0NSA2LjE0OCAxLjk1IDkuNzVsLTEyIDQ0LjM5OGgtMjFjLTE0LjQwMyAwLTI3LjY1My0zLjE0OC0zOS43NS05LjQ1LTEyLjEwMi02LjMtMjIuMTUzLTE0LjY0OC0zMC4xNTMtMjUuMDUtOC0xMC4zOTUtMTMuNDU0LTIyLjI0Ni0xNi4zNS0zNS41NDctMi45LTEzLjMtMi41NS0yNi45NSAxLjA1Mi00MC45NTNsMS4yLTQuNWMyLjU5Ny05LjYwMiA2LjY0OC0xOC40NSAxMi4xNDgtMjYuNTUgNS41LTguMDk4IDEyLTE1IDE5LjUtMjAuNyA3LjUtNS43IDE1Ljg1LTEwLjE0OCAyNS4wNS0xMy4zNTIgOS4yLTMuMTk1IDE4Ljc5Ny00Ljc5NiAyOC44LTQuNzk2IiBmaWxsPSIjZmY2YzJjIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTIzLjg5IDI0MEwxODIuOTkgMTguNjAyYzEuNTk4LTUuNTk4IDQuNTk4LTEwLjA5OCA5LTEzLjVDMTk2LjM4OCAxLjcgMjAxLjQ4NCAwIDIwNy4yODggMGg2Mi43YzE0LjQwMyAwIDI3LjY1IDMuMTQ4IDM5Ljc1IDkuNDUgMTIuMTAyIDYuMyAyMi4xNTMgMTQuNjU1IDMwLjE1MyAyNS4wNSA3Ljk5NyAxMC40MDIgMTMuNSAyMi4yNTQgMTYuNSAzNS41NSAzIDEzLjMwNSAyLjU5NCAyNi45NTQtMS4yMDIgNDAuOTVsLTEuMiA0LjVjLTIuNTk3IDkuNjAyLTYuNTk3IDE4LjQ1LTEyIDI2LjU1LTUuMzk4IDguMDk4LTExLjg0NyAxNS4wNTItMTkuMzQ3IDIwLjg0OC03LjUgNS44MDUtMTUuODU1IDEwLjMwNS0yNS4wNSAxMy41LTkuMiAzLjIwNC0xOC44MDUgNC44MDUtMjguODA1IDQuODA1aC01NC4yOTdsMTAuOC00MC41YzEuNi01LjQwMiA0LjYtOS44IDktMTMuMjAzIDQuMzk2LTMuMzk4IDkuNDk3LTUuMTAyIDE1LjMwMi01LjEwMmgxNy4zOThjNy4yIDAgMTMuNjUzLTIuMiAxOS4zNTItNi41OTcgNS42OTUtNC4zOTggOS40NDUtMTAuMDk3IDExLjI1LTE3LjEgMS4zOTQtNC45OTcgMS41NDctOS45LjQ0NS0xNC43LTEuMS00LjgtMy4wNS05LjA0Ny01Ljg0OC0xMi43NS0yLjgtMy42OTUtNi40MDItNi42OTUtMTAuNzk2LTktNC40MDYtMi4yOTctOS4yMDYtMy40NS0xNC40MDItMy40NUgyMzMuMzlsLTQzLjggMTYyLjkwM2MtMS42MDYgNS40LTQuNjA2IDkuNzk3LTkgMTMuMTk1LTQuNDAzIDMuNDA3LTkuNDA2IDUuMTAyLTE1IDUuMTAyaC00MS43IiBmaWxsPSIjZmY2YzJjIi8+PC9nPjwvc3ZnPgo=
                          icon_mime_type: image/svg+xml
                          license_term: 0
                          max_users: null
                          maximum_server_price: null
                          minimum_server_price: null
                          price: null
                          price_unit: USD
                          product: cPanel DV Certificate
                          product_category: N/A
                          product_group: ssl_certificate
                          product_id: 159
                          provider_display_name: cPanel Store
                          provider_name: cPStore
                          recommended: 0
                          requires_ip: 0
                          x_certificate_term:
                            - 1
                            - year
                          x_identity_verification: null
                          x_max_http_redirects: 0
                          x_payment_trigger: issuance
                          x_price_per_domain: 9
                          x_price_per_domain_maximum: 30
                          x_price_per_domain_minimum: 3
                          x_price_per_wildcard_domain: '75.00'
                          x_price_per_wildcard_domain_maximum: '750.00'
                          x_price_per_wildcard_domain_minimum: '75.00'
                          x_ssl_per_domain_pricing: 1
                          x_supports_dns_dcv: 1
                          x_validation_type: dv
                          x_warn_after: 604800
                          x_wildcard_parent_domain_free: 1
                        - base_name: ''
                          billing_type: one-time
                          description: >-
                            An organization-validated (OV) SSL certificate
                            signed by cPanel.
                          display_name: cPanel OV SSL Certificate
                          enabled: 1
                          icon: >-
                            PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNTlwdCIgaGVpZ2h0PSIzMjAiIHZpZXdCb3g9IjAgMCAzNTkgMjQwIj48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGQ9Ik0xMjMgMGgyMzUuMzd2MjQwSDEyM3ptMCAwIi8+PC9jbGlwUGF0aD48L2RlZnM+PHBhdGggZD0iTTg5LjY5IDU5LjEwMmg2Ny44MDJsLTEwLjUgNDAuMmMtMS42MDUgNS42LTQuNjA1IDEwLjEtOSAxMy41LTQuNDAyIDMuNC05LjUwNCA1LjA5Ni0xNS4zIDUuMDk2aC0zMS41Yy03LjIgMC0xMy41NSAyLjEwMi0xOS4wNSA2LjMtNS41MDUgNC4yLTkuMzUzIDkuOTA0LTExLjU1MiAxNy4xMDMtMS40IDUuNDAzLTEuNTUgMTAuNS0uNDUgMTUuMzAyIDEuMDk4IDQuNzk2IDMuMDQ3IDkuMDUgNS44NTIgMTIuNzUgMi43OTcgMy43MDMgNi40IDYuNjUyIDEwLjc5NyA4Ljg1IDQuMzk3IDIuMiA5LjE5OCAzLjI5OCAxNC40IDMuMjk4aDE5LjJjMy42MDIgMCA2LjU0NyAxLjQ1MyA4Ljg1MiA0LjM1MiAyLjI5NyAyLjkwMiAyLjk0NSA2LjE0OCAxLjk1IDkuNzVsLTEyIDQ0LjM5OGgtMjFjLTE0LjQwMyAwLTI3LjY1My0zLjE0OC0zOS43NS05LjQ1LTEyLjEwMi02LjMtMjIuMTUzLTE0LjY0OC0zMC4xNTMtMjUuMDUtOC0xMC4zOTUtMTMuNDU0LTIyLjI0Ni0xNi4zNS0zNS41NDctMi45LTEzLjMtMi41NS0yNi45NSAxLjA1Mi00MC45NTNsMS4yLTQuNWMyLjU5Ny05LjYwMiA2LjY0OC0xOC40NSAxMi4xNDgtMjYuNTUgNS41LTguMDk4IDEyLTE1IDE5LjUtMjAuNyA3LjUtNS43IDE1Ljg1LTEwLjE0OCAyNS4wNS0xMy4zNTIgOS4yLTMuMTk1IDE4Ljc5Ny00Ljc5NiAyOC44LTQuNzk2IiBmaWxsPSIjZmY2YzJjIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTIzLjg5IDI0MEwxODIuOTkgMTguNjAyYzEuNTk4LTUuNTk4IDQuNTk4LTEwLjA5OCA5LTEzLjVDMTk2LjM4OCAxLjcgMjAxLjQ4NCAwIDIwNy4yODggMGg2Mi43YzE0LjQwMyAwIDI3LjY1IDMuMTQ4IDM5Ljc1IDkuNDUgMTIuMTAyIDYuMyAyMi4xNTMgMTQuNjU1IDMwLjE1MyAyNS4wNSA3Ljk5NyAxMC40MDIgMTMuNSAyMi4yNTQgMTYuNSAzNS41NSAzIDEzLjMwNSAyLjU5NCAyNi45NTQtMS4yMDIgNDAuOTVsLTEuMiA0LjVjLTIuNTk3IDkuNjAyLTYuNTk3IDE4LjQ1LTEyIDI2LjU1LTUuMzk4IDguMDk4LTExLjg0NyAxNS4wNTItMTkuMzQ3IDIwLjg0OC03LjUgNS44MDUtMTUuODU1IDEwLjMwNS0yNS4wNSAxMy41LTkuMiAzLjIwNC0xOC44MDUgNC44MDUtMjguODA1IDQuODA1aC01NC4yOTdsMTAuOC00MC41YzEuNi01LjQwMiA0LjYtOS44IDktMTMuMjAzIDQuMzk2LTMuMzk4IDkuNDk3LTUuMTAyIDE1LjMwMi01LjEwMmgxNy4zOThjNy4yIDAgMTMuNjUzLTIuMiAxOS4zNTItNi41OTcgNS42OTUtNC4zOTggOS40NDUtMTAuMDk3IDExLjI1LTE3LjEgMS4zOTQtNC45OTcgMS41NDctOS45LjQ0NS0xNC43LTEuMS00LjgtMy4wNS05LjA0Ny01Ljg0OC0xMi43NS0yLjgtMy42OTUtNi40MDItNi42OTUtMTAuNzk2LTktNC40MDYtMi4yOTctOS4yMDYtMy40NS0xNC40MDItMy40NUgyMzMuMzlsLTQzLjggMTYyLjkwM2MtMS42MDYgNS40LTQuNjA2IDkuNzk3LTkgMTMuMTk1LTQuNDAzIDMuNDA3LTkuNDA2IDUuMTAyLTE1IDUuMTAyaC00MS43IiBmaWxsPSIjZmY2YzJjIi8+PC9nPjwvc3ZnPgo=
                          icon_mime_type: image/svg+xml
                          license_term: 0
                          max_users: null
                          maximum_server_price: null
                          minimum_server_price: null
                          price: null
                          price_unit: USD
                          product: cPanel OV Certificate
                          product_category: N/A
                          product_group: ssl_certificate
                          product_id: 213
                          provider_display_name: cPanel Store
                          provider_name: cPStore
                          recommended: 0
                          requires_ip: 0
                          x_certificate_term:
                            - 1
                            - year
                          x_identity_verification:
                            - label: Organization Name
                              name: organizationName
                            - is_optional: 1
                              label: Department Name
                              name: organizationalUnitName
                            - description: >-
                                9 consecutive digits or “##-###-####” (More
                                information (https://go.cpanel.net/get_duns))
                              is_optional: 1
                              label: >-
                                Dun & Bradstreet D-U-N-S (Data Universal
                                Numbering System) Number
                              name: duns_number
                              pattern: ^[0-9]{2}(?:-[0-9]{3}-[0-9]{4}|[0-9]{7})$
                            - label: Street Address
                              name: streetAddress
                            - label: City
                              name: localityName
                            - label: State or Province
                              name: stateOrProvinceName
                            - label: Postal Code
                              name: postalCode
                            - label: Country Code
                              name: countryName
                              type: country_code
                            - label: Representative’s Given (First) Name
                              name: rep_forename
                            - label: Representative’s Surname (Last Name)
                              name: rep_surname
                            - label: Representative’s Email Address
                              name: rep_email_address
                              type: email
                            - description: >-
                                This should be one of the organization’s
                                publicly-listed telephone numbers.
                              is_optional: 1
                              label: Representative’s Telephone Number
                              name: rep_telephone
                              type: tel
                          x_max_http_redirects: 0
                          x_payment_trigger: checkout
                          x_price_per_domain: 30
                          x_price_per_domain_maximum: 300
                          x_price_per_domain_minimum: 30
                          x_price_per_wildcard_domain: '99.00'
                          x_price_per_wildcard_domain_maximum: '990.00'
                          x_price_per_wildcard_domain_minimum: '99.00'
                          x_ssl_per_domain_pricing: 1
                          x_supports_dns_dcv: 1
                          x_validation_type: ov
                          x_warn_after: 604800
                          x_wildcard_parent_domain_free: 1
                        - base_name: ''
                          billing_type: one-time
                          description: >-
                            A domain-validated (DV) SSL certificate signed by
                            COMODO.
                          display_name: Comodo DV SSL Certificate
                          enabled: 1
                          icon: >-
                            PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNTUwIiB3aWR0aD0iNDE3LjE2Ij48ZyBmaWxsPSIjMzViNTZjIj48cGF0aCBkPSJNNDE0LjM5NiAyNmM3LTExIDAtMjYtMTMtMjZIMTg3LjM5NWMtNDUgMC04MSAxMi0xMDcgMzZzLTQyIDU4LTQ2IDEwM2wtMTAgMTE2Yy00IDQ1IDUgNzkgMjggMTAzIDIyIDI0IDU2IDM2IDEwMSAzNmg0OXYtMWM5LjAwMS0xIDE1LjAwMS03IDE2LjAwMS0xN2w1LTU3YzAtMTEtNy0xOS0xOC4wMDEtMTloLTI3Yy0xNyAwLTMwLTQtMzctMTItNy03LTEwLTIwLTgtMzlsOS0xMDRjMi0xOCA3LTMxIDE1LTM5czIxLTEyIDM5LTEyaDE0NC4wMDFjMTcgMCAzNC05IDQ0LTIzbDMwLTQ1Ii8+PHBhdGggZD0iTTMuMzk1IDUyNGMtOCAxMS0xIDI2IDEyIDI2aDIxNy4wMDFjNDUgMCA4MS0xMiAxMDgtMzYgMjYtMjQgNDEtNTggNDUtMTAybDExLTExN2MzLTQ1LTYtNzktMjgtMTAzLTIzLTI0LTU2LTM2LTEwMS0zNmgtNDl2MWMtMTAuMDAxIDEtMTUuMDAxIDctMTYuMDAxIDE3bC01IDU4Yy0xIDEwIDcgMTggMTcuMDAxIDE4aDI3YzE4IDAgMzAgNCAzNyAxMnMxMCAyMSA5IDM5bC0xMCAxMDRjLTEgMTktNiAzMi0xNCAzOS05IDgtMjIgMTItNDAgMTJINzYuMzk1Yy0xNyAwLTMzIDktNDMgMjRsLTMwIDQ0Ii8+PC9nPjwvc3ZnPg==
                          icon_mime_type: image/svg+xml
                          license_term: 0
                          max_users: null
                          maximum_server_price: null
                          minimum_server_price: null
                          price: null
                          price_unit: USD
                          product: Comodo DV Certificate
                          product_category: N/A
                          product_group: ssl_certificate
                          product_id: 151
                          provider_display_name: cPanel Store
                          provider_name: cPStore
                          recommended: 0
                          requires_ip: 0
                          x_certificate_term:
                            - 1
                            - year
                          x_identity_verification: null
                          x_max_http_redirects: 0
                          x_payment_trigger: issuance
                          x_price_per_domain: 12
                          x_price_per_domain_maximum: 120
                          x_price_per_domain_minimum: 12
                          x_price_per_wildcard_domain: '99.00'
                          x_price_per_wildcard_domain_maximum: '990.00'
                          x_price_per_wildcard_domain_minimum: '99.00'
                          x_ssl_per_domain_pricing: 1
                          x_supports_dns_dcv: 1
                          x_validation_type: dv
                          x_warn_after: 604800
                          x_wildcard_parent_domain_free: 1
                        - base_name: ''
                          billing_type: one-time
                          description: >-
                            An extended-validated (EV) SSL certificate signed by
                            cPanel.
                          display_name: cPanel EV SSL Certificate
                          enabled: 1
                          icon: >-
                            PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNTlwdCIgaGVpZ2h0PSIzMjAiIHZpZXdCb3g9IjAgMCAzNTkgMjQwIj48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGQ9Ik0xMjMgMGgyMzUuMzd2MjQwSDEyM3ptMCAwIi8+PC9jbGlwUGF0aD48L2RlZnM+PHBhdGggZD0iTTg5LjY5IDU5LjEwMmg2Ny44MDJsLTEwLjUgNDAuMmMtMS42MDUgNS42LTQuNjA1IDEwLjEtOSAxMy41LTQuNDAyIDMuNC05LjUwNCA1LjA5Ni0xNS4zIDUuMDk2aC0zMS41Yy03LjIgMC0xMy41NSAyLjEwMi0xOS4wNSA2LjMtNS41MDUgNC4yLTkuMzUzIDkuOTA0LTExLjU1MiAxNy4xMDMtMS40IDUuNDAzLTEuNTUgMTAuNS0uNDUgMTUuMzAyIDEuMDk4IDQuNzk2IDMuMDQ3IDkuMDUgNS44NTIgMTIuNzUgMi43OTcgMy43MDMgNi40IDYuNjUyIDEwLjc5NyA4Ljg1IDQuMzk3IDIuMiA5LjE5OCAzLjI5OCAxNC40IDMuMjk4aDE5LjJjMy42MDIgMCA2LjU0NyAxLjQ1MyA4Ljg1MiA0LjM1MiAyLjI5NyAyLjkwMiAyLjk0NSA2LjE0OCAxLjk1IDkuNzVsLTEyIDQ0LjM5OGgtMjFjLTE0LjQwMyAwLTI3LjY1My0zLjE0OC0zOS43NS05LjQ1LTEyLjEwMi02LjMtMjIuMTUzLTE0LjY0OC0zMC4xNTMtMjUuMDUtOC0xMC4zOTUtMTMuNDU0LTIyLjI0Ni0xNi4zNS0zNS41NDctMi45LTEzLjMtMi41NS0yNi45NSAxLjA1Mi00MC45NTNsMS4yLTQuNWMyLjU5Ny05LjYwMiA2LjY0OC0xOC40NSAxMi4xNDgtMjYuNTUgNS41LTguMDk4IDEyLTE1IDE5LjUtMjAuNyA3LjUtNS43IDE1Ljg1LTEwLjE0OCAyNS4wNS0xMy4zNTIgOS4yLTMuMTk1IDE4Ljc5Ny00Ljc5NiAyOC44LTQuNzk2IiBmaWxsPSIjZmY2YzJjIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMTIzLjg5IDI0MEwxODIuOTkgMTguNjAyYzEuNTk4LTUuNTk4IDQuNTk4LTEwLjA5OCA5LTEzLjVDMTk2LjM4OCAxLjcgMjAxLjQ4NCAwIDIwNy4yODggMGg2Mi43YzE0LjQwMyAwIDI3LjY1IDMuMTQ4IDM5Ljc1IDkuNDUgMTIuMTAyIDYuMyAyMi4xNTMgMTQuNjU1IDMwLjE1MyAyNS4wNSA3Ljk5NyAxMC40MDIgMTMuNSAyMi4yNTQgMTYuNSAzNS41NSAzIDEzLjMwNSAyLjU5NCAyNi45NTQtMS4yMDIgNDAuOTVsLTEuMiA0LjVjLTIuNTk3IDkuNjAyLTYuNTk3IDE4LjQ1LTEyIDI2LjU1LTUuMzk4IDguMDk4LTExLjg0NyAxNS4wNTItMTkuMzQ3IDIwLjg0OC03LjUgNS44MDUtMTUuODU1IDEwLjMwNS0yNS4wNSAxMy41LTkuMiAzLjIwNC0xOC44MDUgNC44MDUtMjguODA1IDQuODA1aC01NC4yOTdsMTAuOC00MC41YzEuNi01LjQwMiA0LjYtOS44IDktMTMuMjAzIDQuMzk2LTMuMzk4IDkuNDk3LTUuMTAyIDE1LjMwMi01LjEwMmgxNy4zOThjNy4yIDAgMTMuNjUzLTIuMiAxOS4zNTItNi41OTcgNS42OTUtNC4zOTggOS40NDUtMTAuMDk3IDExLjI1LTE3LjEgMS4zOTQtNC45OTcgMS41NDctOS45LjQ0NS0xNC43LTEuMS00LjgtMy4wNS05LjA0Ny01Ljg0OC0xMi43NS0yLjgtMy42OTUtNi40MDItNi42OTUtMTAuNzk2LTktNC40MDYtMi4yOTctOS4yMDYtMy40NS0xNC40MDItMy40NUgyMzMuMzlsLTQzLjggMTYyLjkwM2MtMS42MDYgNS40LTQuNjA2IDkuNzk3LTkgMTMuMTk1LTQuNDAzIDMuNDA3LTkuNDA2IDUuMTAyLTE1IDUuMTAyaC00MS43IiBmaWxsPSIjZmY2YzJjIi8+PC9nPjwvc3ZnPgo=
                          icon_mime_type: image/svg+xml
                          license_term: 0
                          max_users: null
                          maximum_server_price: null
                          minimum_server_price: null
                          price: null
                          price_unit: USD
                          product: cPanel EV Certificate
                          product_category: N/A
                          product_group: ssl_certificate
                          product_id: 209
                          provider_display_name: cPanel Store
                          provider_name: cPStore
                          recommended: 0
                          requires_ip: 0
                          x_certificate_term:
                            - 1
                            - year
                          x_identity_verification:
                            - label: Organization Name
                              name: organizationName
                            - is_optional: 1
                              label: Department Name
                              name: organizationalUnitName
                            - description: >-
                                9 consecutive digits or “##-###-####” (More
                                information (https://go.cpanel.net/get_duns))
                              is_optional: 1
                              label: >-
                                Dun & Bradstreet D-U-N-S (Data Universal
                                Numbering System) Number
                              name: duns_number
                              pattern: ^[0-9]{2}(?:-[0-9]{3}-[0-9]{4}|[0-9]{7})$
                            - label: Street Address
                              name: streetAddress
                            - label: City
                              name: localityName
                            - label: State or Province
                              name: stateOrProvinceName
                            - label: Postal Code
                              name: postalCode
                            - label: Country Code
                              name: countryName
                              type: country_code
                            - label: Representative’s Given (First) Name
                              name: rep_forename
                            - label: Representative’s Surname (Last Name)
                              name: rep_surname
                            - label: Representative’s Email Address
                              name: rep_email_address
                              type: email
                            - description: >-
                                This should be one of the organization’s
                                publicly-listed telephone numbers.
                              is_optional: 1
                              label: Representative’s Telephone Number
                              name: rep_telephone
                              type: tel
                            - description: >-
                                Consult the EV SSL Certificate Guidelines
                                (https://cabforum.org/extended-validation/) for
                                more information about this field’s options.
                              label: Business Category
                              name: business_category
                              options:
                                - - b
                                  - >-
                                    Incorporated Business (“Private
                                    Organization”)
                                - - d
                                  - >-
                                    Non-incorporated Business (“Business
                                    Entity”)
                                - - c
                                  - Government Entity (“Government Entity”)
                              type: choose_one
                            - is_optional: 1
                              label: >-
                                City Where Incorporated (JOI (Jurisdiction of
                                Incorporation))
                              name: joi_locality_name
                            - is_optional: 1
                              label: >-
                                State or Province Where Incorporated (JOI
                                (Jurisdiction of Incorporation))
                              name: joi_state_or_province_name
                            - label: >-
                                Country Code Where Incorporated (JOI
                                (Jurisdiction of Incorporation))
                              name: joi_country_name
                              type: country_code
                            - is_optional: 1
                              label: Date of Incorporation
                              name: date_of_incorporation
                              type: date
                            - is_optional: 1
                              label: Assumed Name (DBA (Doing Business As))
                              name: assumed_name
                          x_max_http_redirects: 0
                          x_payment_trigger: checkout
                          x_price_per_domain: 60
                          x_price_per_domain_maximum: 600
                          x_price_per_domain_minimum: 60
                          x_ssl_per_domain_pricing: 1
                          x_supports_dns_dcv: 1
                          x_validation_type: ev
                          x_warn_after: 604800
                      errors: null
                      messages: null
                      metadata:
                        transformed: 1
                      status: 1
                      warnings: null
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_all_products
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          $ref: >-
                            #/components/schemas/MarketProviderProductMetaDataType
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return provider's available products
      tags:
        - Market
        - Market Integration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              get_all_products
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/get_all_products
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_get_all_products.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_get_all_products.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/get_all_products/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_get_all_products.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_get_all_products.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'get_all_products'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/get_certificate_status_details:
    get:
      description: >-
        This function returns the status of an SSL certificate request. The
        returns include

        actionable URLs for users to expedite the validation process, if
        applicable.


        **Important:**


        Because this function returns data from a dynamic source, the returns in
        each

        object can vary.
      operationId: get_certificate_status_details
      parameters:
        - description: "The order ID that the\_cPanel Market provider assigned."
          in: query
          name: order_item_id
          required: true
          schema:
            example: 1234567890
            minimum: 1
            type: integer
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_certificate_status_details
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          actionUrls:
                            description: An object that contains actionable URLs.
                            properties:
                              evClickThroughStatus:
                                description: >-
                                  A URL that a user can use to expedite the
                                  validation process for Extended Validation
                                  (EV) certificates.
                                example: https://example.com/action
                                format: url
                                type: string
                              ovCallbackStatus:
                                description: >-
                                  A URL that a user can use to expedite the
                                  validation process for Organization Validated
                                  (OV) certificates.
                                example: https://example.com/action
                                format: url
                                type: string
                            type: object
                          domain_details:
                            description: >-
                              An object that contains information about the
                              domain.
                            properties:
                              domain:
                                description: >-
                                  The Fully Qualified Domain Name (FQDN) that
                                  the function queries.
                                example: www.example.com
                                format: domain
                                type: string
                              status:
                                description: >-
                                  The status of the domain's certificate.


                                  * `VALIDATED` - The domain has been validated.

                                  * `NOTVALIDATED` - The domain has **not** been
                                  validated.

                                  * `AWAITINGBRAND` - The domain has **not**
                                  been validated, and is awaiting brand
                                  approval.
                                enum:
                                  - VALIDATED
                                  - NOTVALIDATED
                                  - AWAITINGBRAND
                                example: AWAITINGBRAND
                                type: string
                            type: object
                          status_details:
                            description: >-
                              An object that contains specific information about
                              the validation process.
                            properties:
                              brandValStatus:
                                description: >-
                                  Whether the brand validation status has
                                  completed.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The certificate's brand
                                  validation is **not** complete.

                                  * `completed` - The certificate's brand
                                  validation is complete.

                                  * `in-progress` - The certificate's brand
                                  validation is in progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: in-progress
                                type: string
                              certificateStatus:
                                description: >-
                                  Whether the provider has issued the SSL
                                  certificate.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The certificate's issue is
                                  **not** completed.

                                  * `completed` - The provider has issued the
                                  certificate.

                                  * `in-progress` - The certificate's issue is
                                  in progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: in-progress
                                type: string
                              csrStatus:
                                description: >-
                                  Whether the certificate signing request (CSR)
                                  has completed.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The CSR for the
                                  certificate is **not** complete.

                                  * `completed` - The CSR for the certificate is
                                  complete.

                                  * `in-progress` - The CSR for the certificate
                                  is in progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: completed
                                type: string
                              dcvStatus:
                                description: >-
                                  Whether Domain Control Validation (DCV) has
                                  completed.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The DCV for the
                                  certificate is **not** complete.

                                  * `completed` - The DCV for the certificate is
                                  complete.

                                  * `in-progress` - The DCV for the certificate
                                  is in progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: completed
                                type: string
                              evClickThroughStatus:
                                description: >-
                                  Whether every requirement for the EV
                                  certificate has completed.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The EV certificate's
                                  requirements check is **not** complete.

                                  * `completed` - The EV certificate's
                                  requirements check is complete.

                                  * `in-progress` - The EV certificate's
                                  requirements check is in progress.


                                  For more information, read Sectigo's [What is
                                  required for
                                  validation?](https://support.sectigo.com/Com_KnowledgeDetailPage?Id=kA01N000000zFOr)
                                  documentation.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: in-progress
                                type: string
                              freeDVUPStatus:
                                description: >-
                                  Whether every requirement for the Domain
                                  Validated (DV) certificate has completed.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The DV certificate's
                                  requirements check is **not** complete.

                                  * `completed` - The DV certificate's
                                  requirements check is complete.

                                  * `in-progress` - The DV certificate's
                                  requirements check is in progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: not applicable
                                type: string
                              organizationValidationStatus:
                                description: >-
                                  Whether every requirement for the OV
                                  certificate has completed.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The OV certificate's
                                  requirements check is **not** complete.

                                  * `completed` - The OV certificate's
                                  requirements check is complete.

                                  * `in-progress` - The OV certificate's
                                  requirements check is in progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: not applicable
                                type: string
                              ovCallbackStatus:
                                description: >-
                                  Whether the Certificate Authority (CA) has
                                  verified the organization's validity via a
                                  phone call.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The CA has **not**
                                  verified the organization's validity via
                                  phone.

                                  * `completed` - The CA has verified the
                                  organization's validity via phone.

                                  * `in-progress` - The CA's verification of the
                                  organization's validity via phone is in
                                  progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: not applicable
                                type: string
                              validationStatus:
                                description: >-
                                  Whether the validation process has completed.


                                  * `not applicable` - This is **not**
                                  applicable for the certificate.

                                  * `not-completed` - The certificate's
                                  validation is **not** complete.

                                  * `completed` - The certificate's validation
                                  is complete.

                                  * `in-progress` - The certificate's validation
                                  is in progress.
                                enum:
                                  - not applicable
                                  - not-completed
                                  - completed
                                  - in-progress
                                example: in-progress
                                type: string
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example:
                          - Certificate request is still being processed.
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return provider's SSL certificate request status
      tags:
        - Market
        - SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              get_certificate_status_details \
              order_item_id='1234567890' \
              provider='cPStore'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/get_certificate_status_details?order_item_id=1234567890&provider=cPStore
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_get_certificate_status_details.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_get_certificate_status_details.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/get_certificate_status_details/,
                {
                    'order_item_id' => '1234567890',
                    'provider' => 'cPStore',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_get_certificate_status_details.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_get_certificate_status_details.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'get_certificate_status_details',
                array (
                    'order_item_id' => '1234567890',
                    'provider' => 'cPStore',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPStore 76
  /Market/get_login_url:
    get:
      description: This function retrieves the login URL for the cPanel Market provider.
      operationId: get_login_url
      parameters:
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
        - description: >-
            Where the cPanel Market provider redirects the user's browser after
            they log in.
          in: query
          name: url_after_login
          required: true
          schema:
            example: http://hostname.example.com/redirectionlocation.cgi?state
            format: url
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_login_url
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        description: The URL to which to redirect the browser after login.
                        example: >-
                          https://example.com/api/?client_id=MyHearseIsAmazing&function=login&module=bogoSSL&redirect_uri=https%3A%2F%2Fqaportal.cpanel.net%2Fbogus.cgi&response_type=token
                        format: url
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return provider's login URL
      tags:
        - Market
        - Market Integration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              get_login_url \
              provider='cPStore' \
              url_after_login='http://hostname.example.com/redirectionlocation.cgi?state'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/get_login_url?provider=cPStore&url_after_login=http%3a%2f%2fhostname.example.com%2fredirectionlocation.cgi%3fstate
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_get_login_url.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_get_login_url.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/get_login_url/,
                {
                    'provider' => 'cPStore',
                    'url_after_login' => 'http://hostname.example.com/redirectionlocation.cgi?state',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_get_login_url.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_get_login_url.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'get_login_url',
                array (
                    'provider' => 'cPStore',
                    'url_after_login' => 'http://hostname.example.com/redirectionlocation.cgi?state',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/get_pending_ssl_certificates:
    get:
      description: >-
        This function lists all pending SSL certificates from a cPanel Market
        provider for which the system currently polls.
      operationId: get_pending_ssl_certificates
      parameters:
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_pending_ssl_certificates
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that contain information about
                          each certificate for which the system polls the
                          provider.
                        items:
                          properties:
                            created_time:
                              description: When the system placed the order.
                              example: 1417475501
                              format: unix_timestamp
                              type: integer
                            csr:
                              description: >-
                                The certificate signing request's (CSR) text. A
                                CSR file in Base64 PEM format.
                              example: >-
                                Click to view...-----BEGIN CERTIFICATE
                                REQUEST-----
                                MIIC4DCCAcgCAQAwgZoxFjAUBgNVBAMTDXRlc3RzaW1vbi5jb20xFjAUBgNVBAsT
                                DURvY3VtZW50YXRpb24xDjAMBgNVBAgTBVRleGFzMQ8wDQYDVQQKEwZjUGFuZWwx
                                KDAmBgkqhkiG9w0BCQEWGWxhdXJlbmNlLnNpbW9uQGNwYW5lbC5uZXQxCzAJBgNV
                                BAYTAlVTMRAwDgYDVQQHEwdIb3VzdG9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
                                MIIBCgKCAQEA4AVM6J4Qg3DIFWr/eJ5GRmIATYsJIepKbrDy70sq+udcO8R8xxak
                                0oMZ/9mUdpjSNK/fLVTuCO0kxTfQ9VUWJllX7ThD6Zh9ZvlC/nf/OEZLm3ZbnBgu
                                8rbC8E9wuDOkKbJLnINgdhtowIydLK2MJ++q62bFV89jkHWTMcKyyqHENo3hc+lk
                                pd9vnp8rZTinaVb7nX26uQqAFZYRo+WU0G/NPsq40QVSMoqPxyEz4qXo0hvuIlCX
                                mzFZq/6fCVPEKPLhQgMmpdBkMz4dVOazREfqXdjMD2+QXSNiA1AwWr8l0r4rtzlx
                                EYDJIR41yXp0xMl3KoolxMyvLBqZy32niQIDAQABoAAwDQYJKoZIhvcNAQEFBQAD
                                ggEBAEaCn+rg6qlhp6SEKuZg1G6z1M+1XQoTN3E6bTdM3rD1wXjqtyFfYGTy5Bvv
                                gUKrl6t312owJ2si8/K9v/ocVxdjc0rPWSOWScfSc1Od3i1L1YuqbboL2aQSak3y
                                gpGnZMHCUED1y4xyABAFOaXUurFiZj5u3P2mBAYGt2ez2afiPlo5YpTRNCoTUlVz
                                KNKkyUnptBLOvlwGgerBmOoP4QdVhTSuxO9TECsiPdldE1BVZrlFclDFvoP01jFZ
                                WOTWz+k3O202gK4w/tPP2VMVldNFrC0QoENu85ohT1nJj6F3mrM1CZ+1c8zYzr+S
                                6aAXFhHE6FweeunRAGjEJggoTPo= -----END
                                CERTIFICATE REQUEST-----
                              format: base64 certificate
                              type: string
                            domains:
                              description: The domains on the certificate.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            expired:
                              description: |-
                                Whether the pending queue item has been deleted.
                                * `1` - Deleted.
                                * `0` - **Not** deleted.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            first_poll_time:
                              description: >-
                                The first time that the system polled the
                                provider for the certificate.
                              example: 1437475501
                              format: unix_timestamp
                              type: integer
                            identity_verification:
                              description: >-
                                hash that contains information to verify an OV
                                or EV certificate request.


                                **Notes:**

                                 The function returns this hash for OV or EV certificate requests. This hash includes returns that vary between certificate providers. The output example demonstrates what the cPStore returns for an OV certificate.
                              example:
                                assumed_name: cPanel
                                business_category: b
                                countryName: US
                                date_of_incorporation: '1996-01-01T00:00:00.000Z'
                                duns_number: 12-345-6789
                                joi_country_name: US
                                joi_locality_name: Somewhere
                                joi_state_or_province_name: PA
                                localityName: Houston
                                organizationName: WebPros International, LLC
                                organizationalUnitName: Team Cobra
                                postalCode: '77092'
                                rep_email_address: richard.ang@cpanel.net
                                rep_forename: Richard
                                rep_surname: Ang
                                rep_telephone: 713-529-0800
                                stateOrProvinceName: TX
                                streetAddress: 2500 N. Loop W.
                              type: object
                            last_poll_time:
                              description: >-
                                The last time that the system polled the
                                provider for the certificate.
                              example: 1457475501
                              format: unix_timestamp
                              type: integer
                            last_status_code:
                              description: >-
                                The last status code of the order. The function
                                returns the value in the unnamed hash.

                                * `CertificateNotFound` - The system cannot
                                locate the specified certificate.

                                * `RequiresApproval` - The specified certificate
                                requires approval.

                                * `OrderCanceled` - The system canceled the
                                order of the specified certificate.

                                * `OrderItemCanceled` - The system canceled the
                                order item of the specified certificate.
                              enum:
                                - CertificateNotFound
                                - RequiresApproval
                                - OrderCanceled
                                - OrderItemCanceled
                              example: CertificateNotFound
                              type: string
                            order_id:
                              description: The ID of the order.
                              example: AAE35B28-E57B-11E5-A5DD-B633DD41FB49
                              type: string
                            order_item_id:
                              description: The ID of the ordered item.
                              example: '1'
                              type: string
                            product_id:
                              description: The product's ID.
                              example: '12345'
                              type: string
                            provider:
                              description: The cPanel Market provider's name.
                              example: cPStore
                              type: string
                            status:
                              description: |-
                                The status of the order.
                                * `confirmed` - Payment confirmed.
                                * `unconfirmed` - Payment not confirmed.
                              example: confirmed
                              type: string
                            support_uri:
                              description: >-
                                The URI of the cPanel Market Provider's support
                                site.
                              example: http://support.example.com/
                              format: url
                              type: string
                            vhost_names:
                              description: The virtual host domains on the certificate.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return provider's pending SSL certificates
      tags:
        - Market
        - SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              get_pending_ssl_certificates \
              provider='cPStore'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/get_pending_ssl_certificates?provider=cPStore
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_get_pending_ssl_certificates.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_get_pending_ssl_certificates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/get_pending_ssl_certificates/,
                {
                    'provider' => 'cPStore',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_get_pending_ssl_certificates.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_get_pending_ssl_certificates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'get_pending_ssl_certificates',
                array (
                    'provider' => 'cPStore',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/get_provider_specific_dcv_constraints:
    get:
      description: >-
        This function returns the provider's filename requirements for Domain
        Control Validation (DCV) checks.
      operationId: Market-get_provider_specific_dcv_constraints
      parameters:
        - description: The cPanel Market provider's name.
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_provider_specific_dcv_constraints
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          dcv_file_allowed_characters:
                            description: >-
                              An array that lists the characters which the
                              provider allows in the DCV check file's filename.
                            items:
                              example:
                                - 0
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - A
                                - B
                                - C
                                - D
                                - E
                                - F
                              type: array
                            type: array
                          dcv_file_extension:
                            description: >-
                              The DCV check file extension that the provider
                              requires.
                            example: txt
                            type: string
                          dcv_file_random_character_count:
                            description: >-
                              The number of characters that the provider allows
                              in the DCV check file's filename.
                            example: 32
                            minimum: 1
                            type: integer
                          dcv_file_relative_path:
                            description: >-
                              The path to the DCV check file, relative to the
                              domain's document root directory.
                            example: .well-known/pki-validation
                            format: path
                            type: string
                          dcv_max_redirects:
                            description: >-
                              The maximum number of HTTP redirects the provider
                              allows.
                            example: 0
                            minimum: 0
                            type: integer
                          dcv_user_agent_string:
                            description: >-
                              The user agent string that the system will use for
                              the imitated local DCV check.
                            example: COMODO DCV
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return provider's DCV filename requirements
      tags:
        - Market
        - SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              get_provider_specific_dcv_constraints \
              provider='cPStore'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/get_provider_specific_dcv_constraints?provider=cPStore
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            Market_get_provider_specific_dcv_constraints.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_get_provider_specific_dcv_constraints.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/get_provider_specific_dcv_constraints/,
                {
                    'provider' => 'cPStore',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            Market_get_provider_specific_dcv_constraints.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_get_provider_specific_dcv_constraints.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'get_provider_specific_dcv_constraints',
                array (
                    'provider' => 'cPStore',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 62
  /Market/get_providers_list:
    get:
      description: This function lists the names of enabled cPanel Market providers.
      operationId: Market-get_providers_list
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_providers_list
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that lists enabled providers in
                          the cPanel Market.
                        items:
                          properties:
                            display_name:
                              description: The cPanel Market provider's display name.
                              example: cPanel Store
                              type: string
                            name:
                              description: The cPanel Market provider's name.
                              example: cPStore
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return enabled providers
      tags:
        - Market
        - Market Integration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              get_providers_list
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/get_providers_list
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_get_providers_list.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_get_providers_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/get_providers_list/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_get_providers_list.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_get_providers_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'get_providers_list'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/get_ssl_certificate_if_available:
    get:
      description: "This function retrieves SSL certificates when they are available from the\_cPanel Market provider."
      operationId: get_ssl_certificate_if_available
      parameters:
        - description: The order item for which to poll.
          in: query
          name: order_item_id
          required: true
          schema:
            example: '8675309'
            type: string
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_ssl_certificate_if_available
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          certificate_pem:
                            description: >-
                              The certificate's text.

                              * `null` - The certificate is not available.

                              * A certificate file in [Base64
                              PEM](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail)
                              format.
                            example: >-
                              -----BEGIN CERTIFICATE-----
                              MIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ
                              c2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI
                              DAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy
                              MjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV
                              BAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G
                              CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P
                              Xx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fW
                              voK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/da
                              M3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC
                              +Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6
                              PLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj
                              UDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw
                              +wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA
                              A4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3Wh
                              cDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVw
                              FYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh
                              /SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2ag
                              qz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPa
                              Km6r7YmwfLN/YMZBHXSR58oOGP9W -----END
                              CERTIFICATE-----
                            format: base64 certificate
                            nullable: true
                            type: string
                          encrypted_action_urls:
                            description: >-
                              An object that contains encrypted URLs a user must
                              click to complete their SSL certificate order.


                              **Note:**


                              This return may also contain additional key
                              values. For more information, read [Sectigo's
                              documentation](https://sectigo.com/uploads/files/CollectSSL-v1.17.pdf).
                            properties:
                              evClickThroughStatus:
                                description: >-
                                  A URL the user must click to electronically
                                  sign an agreement for their Extended
                                  Validation (EV) certificate.

                                  * An encrypted URL.

                                  * `null` - No action required.
                                example: >-
                                  mgs8RgnN0rkRmJz0SAMvjLokoPoXm5LdzEkmKA7IsGmzvU5XTrFInOegFBbWFycToS7FPOevzkH9\nZp0+QG1xcC/0bWKB1cNeTiYB3Fmv0HGu2ZsA+AYgIhSsZikyD9M6YbHk1IZA3GLNPl8DxX5zG9LQ\nHiv7Ll2QMJcPmMaJ3xktTY9NuiaPiPmYBljEE094LeqabP3w/kRALDnhR4FcwjsTn7iDJKoxtKju\nP/DbgV32vhESwWoaKrIYPkSJ/Dav0a/LQqLqD3Jg27WgrW+GaZSbHlHr09UQW/2CIiIK7jbUoLG3\nANL0fKevyjxrBjCfXQq0umXcZIJPWo4gfukfkQ==\n
                                nullable: true
                                type: string
                              ovCallbackStatus:
                                description: >-
                                  URL the user must click to verify their
                                  identity by phone to complete their
                                  Organization Validation (OV) certificate
                                  order.

                                  * An encrypted URL.

                                  * `null` - No action required.
                                example: >-
                                  mgs8RgnN0rkRmJz0SAMvjLokoPoXm5LdzEkmKA7IsGmzvU5XTrFInOegFBbWFycToS7FPOevzkH9\nZp0+QG1xcC/0bWKB1cNeTiYB3Fmv0HGu2ZsA+AYgIhSsZikyD9M6YbHk1IZA3GLNPl8DxX5zG9LQ\nHiv7Ll2QMJcPmMaJ3xktTY9NuiaPiPmYBljEE094LeqabP3w/kRALDnhR4FcwjsTn7iDJKoxtKju\nP/DbgV32vhESwWoaKrIYPkSJ/Dav0a/LQqLqD3Jg27WgrW+GaZSbHlHr09UQW/2CIiIK7jbUoLG3\nANL0fKevyjxrBjCfXQq0umXcZIJPWo4gfukfkQ==\n
                                nullable: true
                                type: string
                            type: object
                          status_code:
                            description: The status code of the certificate.
                            example: RequiresApproval
                            type: string
                          status_message:
                            description: >-
                              An error message from the certificate provider.
                              For example, why a certificate authority rejected
                              an SSL certificate.


                              **Note:**


                              If no error message exists, this will return an
                              empty string.
                            example: 'PRE-SIGN FAILED: CAA: Processing error'
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings

                          describe non-critical failures or other problematic
                          conditions

                          noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return provider's available SSL certificates
      tags:
        - Market
        - SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              get_ssl_certificate_if_available \
              provider='cPStore' \
              order_item_id='8675309'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/get_ssl_certificate_if_available?provider=cPStore&order_item_id=8675309
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_get_ssl_certificate_if_available.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_get_ssl_certificate_if_available.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/get_ssl_certificate_if_available/,
                {
                    'provider' => 'cPStore',
                    'order_item_id' => '8675309',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_get_ssl_certificate_if_available.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_get_ssl_certificate_if_available.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'get_ssl_certificate_if_available',
                array (
                    'provider' => 'cPStore',
                    'order_item_id' => '8675309',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/process_ssl_pending_queue:
    get:
      description: >-
        This function manually processes the cPanel Market's SSL certificate
        request pending queue.
      operationId: process_ssl_pending_queue
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: process_ssl_pending_queue
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Information about each certificate request in the
                          pending queue.
                        items:
                          properties:
                            certificate_pem:
                              description: |-
                                The text of the certificate, if available.
                                * `null` - The certificate is not available.
                              example: 'null'
                              format: base64 certificate
                              nullable: true
                              type: string
                            created_time:
                              description: When the system placed the order.
                              example: 1460136406
                              format: unix_timestamp
                              type: integer
                            csr:
                              description: The Certificate Signing Request's (CSR's) text.
                              example: >-
                                -----BEGIN CERTIFICATE
                                REQUEST-----\nMIICqjCCAZICAQAwHDEaMBgGA1UEAxMRY3BhbmVsc3NsdGVzdC5vcmcwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqu4KLPxCgAENTJFjcUyc4v5KaF8Lu\n2OldjIT/vB58IRCIUxdDSD29v/qHFVBaUFEtr+Ssey0strMcc6JYSl8Vdwfe2qwv\npB6+Ufg+hlN4lAgojxgwz7iZlPnGuRVfNTvNMmljVRzGDc4SSzskpDxZhk+aaMgP\nSkMLFg6f6pFZ+44alridlSG5gxD34xWAtt8Qy2v+6Q4XVuMNCd9KlyAoCV9Q+wH1\nq49yoRdwvcY6G6mqlFWtHsToz4tdYk/Nt7odZnyKcjHWGWnlRzO2FGbbBxVKF8s6\ns3DL5OwPRfQQD18V7eL7NmcFo45zmdndBOevrLuwXJ1yWITM2bmYgF1nAgMBAAGg\nSTBHBgkqhkiG9w0BCQ4xOjA4MDYGA1UdEQEB/wQsMCqCEWNwYW5lbHNzbHRlc3Qu\nb3JnghV3d3cuY3BhbmVsc3NsdGVzdC5vcmcwDQYJKoZIhvcNAQELBQADggEBAFAJ\nSqTvd3d8PN26UiT4uX0WjofaX8u1/11hU5Saekai0Dxl/ijq2R7TpebXe9r0t6Cr\ns7NXKszVoKzQHV4nSFbfb3ZxEsnVDXbPUv3D+oLfGpMASLG+P2yOjmDhzZBNJgo4\nQu6nf6ggJxJ0PRM81xL234FAKqsOvvTwTLXtYVrwbUCzfB+yKJXvfeGETR/3HGxR\nqoJ97Zmjsbw78fETEsZ6rsBHDPuxtxum73BC7qoLjCl4psPznHshXvWTeV9fyR3c\nqpdpLvwBxhI8ZOWoNGgJlUpY9jUFgqG+YI/Mkmzmxk9QC9edIHSScTXxroYkmwMC\nginnKRLDafSp+7FyIzs=\n-----END
                                CERTIFICATE REQUEST-----
                              format: base64 certificate
                              type: string
                            deleted:
                              description: >-
                                Whether the system has deleted the item from the
                                pending queue.

                                * `0` - Deleted.

                                * `1` - **Not** deleted.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            domains:
                              description: >-
                                A list of domains that the certificate request
                                covers.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            expired:
                              description: >-
                                Whether the system has deleted the item from the
                                pending queue.

                                * `1` - Deleted.

                                * `0` - **Not** deleted.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            first_poll_time:
                              description: >-
                                The first time that the system polled the
                                provider for the certificate.
                              example: 1458061262
                              format: unix_timestamp
                              type: integer
                            installed:
                              description: |-
                                Whether the system installed the certificate.
                                * `1` - Installed.
                                * `0` - **Not** installed.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            last_poll_time:
                              description: >-
                                The last time that the system polled the
                                provider for the certificate.
                              example: 1458061299
                              format: unix_timestamp
                              type: integer
                            last_status_code:
                              description: >-
                                The last status code of the order.

                                * `CertificateNotFound` - The system cannot
                                locate the specified certificate.

                                * `RequiresApproval` - The specified certificate
                                requires approval.

                                * `OrderCanceled` - The system canceled the
                                order of the specified certificate.

                                * `OrderItemCanceled` - The system canceled the
                                order item of the specified certificate.
                              enum:
                                - CertificateNotFound
                                - RequiresApproval
                                - OrderCanceled
                                - OrderItemCanceled
                              example: CertificateNotFound
                              type: string
                            last_status_message:
                              description: >-
                                An error message from the certificate provider.

                                For example, why a certificate authority
                                rejected an SSL certificate.


                                **Note:**


                                If no error message exists, this will return an
                                empty string.
                              example: 'PRE-SIGN FAILED: CAA: Processing error'
                              type: string
                            order_id:
                              description: A unique identifier for the order.
                              example: '19461'
                              type: string
                            order_item_id:
                              description: A unique identifier of each item in the order.
                              example: f9d7
                              type: string
                            product_id:
                              description: An identifier for a given product.
                              example: fg2
                              type: string
                            provider:
                              description: The cPanel Market provider's name.
                              example: cPStore
                              type: string
                            status:
                              description: |-
                                The status of the order.
                                * `confirmed` - Payment confirmed.
                                * `unconfirmed` - Payment **not** confirmed.
                              enum:
                                - confirmed
                                - unconfirmed
                              example: confirmed
                              type: string
                            vhost_names:
                              description: A list of virtual host names.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings

                          describe non-critical failures or other problematic
                          conditions

                          noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Start processing pending queue's SSL certificates
      tags:
        - Market
        - SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              process_ssl_pending_queue
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/process_ssl_pending_queue
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_process_ssl_pending_queue.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_process_ssl_pending_queue.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/process_ssl_pending_queue/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_process_ssl_pending_queue.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_process_ssl_pending_queue.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'process_ssl_pending_queue'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/request_ssl_certificates:
    get:
      description: >-
        This function submits a request for a certificate order to the cPanel
        Market provider.
      operationId: request_ssl_certificates
      parameters:
        - description: "The access token for the session to the\_cPanel Market provider."
          in: query
          name: access_token
          required: true
          schema:
            example: 725431a1-d5bc-11e5-a28b-8b0e09a93f05
            type: string
        - content:
            application/json:
              schema:
                example:
                  price: 6
                  product_id: '143'
                  subject_names:
                    - dNSName: example.com
                    - dNSName: example.org
                  validity_period:
                    - 1, "year"
                  vhost_names:
                    - example.com
                properties:
                  price:
                    description: The certificate's price.
                    format: currency
                    type: number
                  product_id:
                    description: The product's ID.
                    type: string
                  subject_names:
                    anyOf:
                      - description: HTTP-based DCV only.
                        items:
                          type: string
                        type: array
                      - description: DNS-based DCV or HTTP-based DCV.
                        items:
                          type: object
                        type: array
                    description: >-
                      An array of strings or array of objects containing the
                      certificate's subject names:


                      **For HTTP-based DCV only:**


                      Use an array of strings that contains `dNSName` and the
                      domain.


                      For example:


                      `[["dNSName","example.com"],["dNSName","example.org"]]`


                      **DNS-based DCV or HTTP-based DCV:**


                      Use an array of objects that consits of:


                      * `type:dNSName`

                      * `name` — The domain name.

                      * `dcv_method` — Either the `dns` or `http` value for for
                      DNS-based or HTTP-based Domain Control Validation (DCV).


                      For example:


                      `[{type:“dNSName”,name:“text.example.com”,dcv_method:“dns”},{type:“dNSName”,name:“text.example.com”,dcv_method:“http”}]`


                      **Note:**


                      * Custom provider modules that include DNS-based DCV
                      requests **must** use the array of

                      objects format, **not** the array of strings format.

                      * This function does **not** automatically include the
                      corresponding `www.` subdomain for each domain

                      that you declare in this parameter.

                      * If you wish to order the `www.` subdomain for a domain,
                      you **must** explicitly declare it in an additional

                      array or object within the `subject_names` parameter.
                  validity_period:
                    description: >-
                      The period of time the certificate will remain valid.

                      This array consists of a number value and string that
                      represents a unit of time (for example, `year`).
                    items:
                      type: string
                    type: array
                  vhost_names:
                    description: >-
                      A comma-separated list of web virtual hosts (vhosts) for
                      which the system will install the certificate.


                      **Note:**


                      An asterisk (`*`) chraracter represents every vhost with
                      which the certificate is compatible.
                    items:
                      type: string
                    type: array
                required:
                  - product_id
                  - price
                  - subject_names
                  - validity_period
          description: >-
            A JSON-encoded string that contains the details of the certificate.


            **Note:**


            To request multiple certificates, duplicate or increment the
            parameter name.

            For example, to request three certificates, use the `certificate`
            parameter multiple times or use the `certificate-1`,

            `certificate-2`, and `certificate-3` parameters.
          in: query
          name: certificate
          required: true
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
        - content:
            application/json:
              schema:
                example:
                  countryName: US
                  duns_number: 12-345-6789
                  localityName: City Name
                  organizationName: Company, Inc.
                  organizationalUnitName: Team Company,
                  postalCode: 55555
                  rep_email_address: username@example.com
                  rep_forename: First Name
                  rep_surname: Last Name
                  rep_telephone: 123-456-7891
                  stateOrProvinceName: ST
                  streetAddress: 555 Street Name
                type: object
          description: >-
            An object containing the required information for an EV or OV
            certificate. This information depends on the provider of the
            certificate.


            **Note:**


            The function returns this object for OV or EV certificate requests.
          in: query
          name: identity_verification
          required: false
        - description: |-
            The URL to send the browser after the user checks out.

            **Note:**

            This URL does **not** contain a query string.
          in: query
          name: url_after_checkout
          required: false
          schema:
            example: http://checkout.example.com
            format: url
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: request_ssl_certificates
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          certificates:
                            description: Information about each certificate in the order.
                            properties:
                              key_id:
                                description: The private key's ID.
                                example: ac90f_639fd_6c236062f0d7a4579a30e01612c4cee0
                                type: string
                              order_item_id:
                                description: The ID of the ordered item.
                                example: 12345
                                minimum: 1
                                type: integer
                            type: object
                          checkout_url:
                            description: >-
                              The URL that the cPanel Market provider uses to
                              process payment.
                            example: http://store.example.com/showmethemoney.cgi
                            format: url
                            type: string
                          order_id:
                            description: >-
                              The order ID that the cPanel Market provider
                              assigned.
                            example: 123456
                            minimum: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings

                          describe non-critical failures or other problematic
                          conditions

                          noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Request SSL certificate order
      tags:
        - Market
        - SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output-jsonpretty --user=username Market
            request_ssl_certificates
            access_token='725431a1-d5bc-11e5-a28b-8b0e09a93f05'
            certificate='{"price":"6","product_id":"143","subject_names":[{"dNSName":"example.com"},{"dNSName":"example.org"}],"validity_period":["1,
            \"year\""],"vhost_names":["example.com"]}' provider='cPStore'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/request_ssl_certificates?access_token=725431a1-d5bc-11e5-a28b-8b0e09a93f05&certificate=%7b%22price%22%3a%226%22%2c%22product_id%22%3a%22143%22%2c%22subject_names%22%3a%5b%7b%22dNSName%22%3a%22example.com%22%7d%2c%7b%22dNSName%22%3a%22example.org%22%7d%5d%2c%22validity_period%22%3a%5b%221%2c%20%5c%22year%5c%22%22%5d%2c%22vhost_names%22%3a%5b%22example.com%22%5d%7d&provider=cPStore
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_request_ssl_certificates.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_request_ssl_certificates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/request_ssl_certificates/,
                {
                    'access_token' => '725431a1-d5bc-11e5-a28b-8b0e09a93f05',
                    'certificate' => '{"price":"6","product_id":"143","subject_names":[{"dNSName":"example.com"},{"dNSName":"example.org"}],"validity_period":["1, \"year\""],"vhost_names":["example.com"]}',
                    'provider' => 'cPStore',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_request_ssl_certificates.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_request_ssl_certificates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'request_ssl_certificates',
                array (
                    'access_token' => '725431a1-d5bc-11e5-a28b-8b0e09a93f05',
                    'certificate' => '{"price":"6","product_id":"143","subject_names":[{"dNSName":"example.com"},{"dNSName":"example.org"}],"validity_period":["1, \"year\""],"vhost_names":["example.com"]}',
                    'provider' => 'cPStore',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/set_status_of_pending_queue_items:
    get:
      description: >-
        This function sets the status of an item or items in the cPanel Market
        pending queue.
      operationId: set_status_of_pending_queue_items
      parameters:
        - description: "The ID of the ordered item.\n\n**Note:**\n\nTo set the status for multiple items, duplicate or increment the parameter name. For example, to change the status for three certificates, use the\_`order_item_id`\_parameter multiple times or use the\_`order_item_id-1`, `order_item_id-2`, and\_`order_item_id-3`\_parameters."
          examples:
            multiple:
              summary: Multiple IDs.
              value: >-
                order_item_id-1=12345&order_item_id-2=12346&order_item_id-3=12347
            multiple-alternative:
              summary: Multiple IDs alternative.
              value: order_item_id=12345&order_item_id=12346&order_item_id=12347
            single:
              summary: A single ID.
              value: '12345'
          in: query
          name: order_item_id
          required: true
          schema:
            type: string
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
        - description: >-
            The new status of the item in the cPanel Market pending queue.


            * `confirmed` — The system confirmed payment for the item with the
            provider.
          in: query
          name: status
          required: true
          schema:
            enum:
              - confirmed
            example: confirmed
            type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                failure:
                  summary: The function failed.
                  value:
                    apiversion: 3
                    func: set_status_of_pending_queue_items
                    module: Market
                    result:
                      data:
                        error_type: EntryDoesNotExist
                        order_item_ids:
                          - 8675309
                      errors:
                        - >-
                          The order item ID “8675309” does not match any entries
                          in the pending queue.
                      messages: null
                      metadata: {}
                      status: 0
                      warnings: null
                success:
                  summary: The function succeeded.
                  value:
                    apiversion: 3
                    func: set_status_of_pending_queue_items
                    module: Market
                    result:
                      data: null
                      errors: null
                      messages: null
                      metadata: {}
                      status: 1
                      warnings: null
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_status_of_pending_queue_items
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The function only returns these values if the user or
                          users do **not** have the `order_item_id` item in the
                          cPanel Market pending queue.
                        nullable: true
                        properties:
                          error_type:
                            description: >-
                              The type of error that the function encountered.


                              * `EntryDoesNotExist` — The returned
                              `order_item_ids` do not exist in the cPanel Market
                              pending queue for the user.
                            enum:
                              - EntryDoesNotExist
                            example: EntryDoesNotExist
                            type: string
                          order_item_ids:
                            description: >-
                              An array that lists order item IDs which do not
                              exist in the cPanel Market pending queue for the
                              user.
                            items:
                              example: 8675309
                              minimum: 0
                              type: integer
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update status of items in pending queue
      tags:
        - Market
        - Market Integration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              set_status_of_pending_queue_items \
              provider='cPStore' \
              order_item_id='12345' \
              status='confirmed'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/set_status_of_pending_queue_items?provider=cPStore&order_item_id=12345&status=confirmed
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_set_status_of_pending_queue_items.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_set_status_of_pending_queue_items.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/set_status_of_pending_queue_items/,
                {
                    'provider' => 'cPStore',
                    'order_item_id' => '12345',
                    'status' => 'confirmed',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            Market_set_status_of_pending_queue_items.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_set_status_of_pending_queue_items.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'set_status_of_pending_queue_items',
                array (
                    'provider' => 'cPStore',
                    'order_item_id' => '12345',
                    'status' => 'confirmed',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/set_url_after_checkout:
    get:
      description: >-
        This function updates the URL to which a provider sends a user after
        they check out.
      operationId: set_url_after_checkout
      parameters:
        - description: "The access token for the session to the\_cPanel Market provider."
          in: query
          name: access_token
          required: true
          schema:
            example: 725431a1-d5bc-11e5-a28b-8b0e09a93f05
            type: string
        - description: "The order ID that the\_cPanel Market provider assigned."
          in: query
          name: order_id
          required: true
          schema:
            example: 123456
            type: integer
        - description: "The\_cPanel Market provider's name."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
        - description: The URL to send the browser after the user checks out.
          in: query
          name: url_after_checkout
          required: true
          schema:
            example: http://checkout.example.com
            format: url
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_url_after_checkout
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          error_type:
                            description: Any errors that the function encounters.
                            example: This is an error.
                            nullable: true
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update URL after checkout
      tags:
        - Market
        - Market Integration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              set_url_after_checkout \
              provider='cPStore' \
              access_token='725431a1-d5bc-11e5-a28b-8b0e09a93f05' \
              order_id='123456' \
              url_after_checkout='http://checkout.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/set_url_after_checkout?provider=cPStore&access_token=725431a1-d5bc-11e5-a28b-8b0e09a93f05&order_id=123456&url_after_checkout=http%3a%2f%2fcheckout.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_set_url_after_checkout.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_set_url_after_checkout.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/set_url_after_checkout/,
                {
                    'provider' => 'cPStore',
                    'access_token' => '725431a1-d5bc-11e5-a28b-8b0e09a93f05',
                    'order_id' => '123456',
                    'url_after_checkout' => 'http://checkout.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_set_url_after_checkout.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_set_url_after_checkout.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'set_url_after_checkout',
                array (
                    'provider' => 'cPStore',
                    'access_token' => '725431a1-d5bc-11e5-a28b-8b0e09a93f05',
                    'order_id' => '123456',
                    'url_after_checkout' => 'http://checkout.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Market/validate_login_token:
    get:
      description: "This function validates a login token to a\_cPanel Market provider and returns an access token."
      operationId: validate_login_token
      parameters:
        - description: The login token for the cPanel Market provider.
          in: query
          name: login_token
          required: true
          schema:
            example: '8675309'
            type: string
        - description: "The name of the\_cPanel Market provider."
          in: query
          name: provider
          required: true
          schema:
            example: cPStore
            type: string
        - description: >-
            The `url_after_login` value that you sent to UAPI's
            `Market::get_login_url` function.
          in: query
          name: url_after_login
          required: true
          schema:
            example: http://hostname.example.com/redirectionlocation.cgi?state
            format: url
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: validate_login_token
                    type: string
                  module:
                    description: The name of the module called.
                    example: Market
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          access_token:
                            description: >-
                              The access token that returns from the code
                              parameter after you log in.
                            example: '8675309'
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` Success.

                          * `0` Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate login token
      tags:
        - Market
        - Market Integration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Market \
              validate_login_token \
              provider='cPStore' \
              login_token='8675309' \
              url_after_login='http://hostname.example.com/redirectionlocation.cgi?state'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Market/validate_login_token?provider=cPStore&login_token=8675309&url_after_login=http%3a%2f%2fhostname.example.com%2fredirectionlocation.cgi%3fstate
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Market_validate_login_token.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Market_validate_login_token.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Market/,
                q/validate_login_token/,
                {
                    'provider' => 'cPStore',
                    'login_token' => '8675309',
                    'url_after_login' => 'http://hostname.example.com/redirectionlocation.cgi?state',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Market_validate_login_token.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Market_validate_login_token.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Market',
                'validate_login_token',
                array (
                    'provider' => 'cPStore',
                    'login_token' => '8675309',
                    'url_after_login' => 'http://hostname.example.com/redirectionlocation.cgi?state',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Mime/add_handler:
    get:
      description: >-
        This function creates an Apache MIME type handler for a file extension.


        **Important:**


        When you disable the [Web Server](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: add_handler
      parameters:
        - description: The file extension.
          in: query
          name: extension
          required: true
          schema:
            example: .foo
            type: string
        - description: The Apache MIME handler.
          in: query
          name: handler
          required: true
          schema:
            example: txt-foo
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_handler
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        enum:
                          - null
                        example: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add web server MIME type handler
      tags:
        - Mime
        - Handler Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              add_handler \
              extension='.foo' \
              handler='txt-foo'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/add_handler?extension=.foo&handler=txt-foo
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_add_handler.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_add_handler.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/add_handler/,
                {
                    'extension' => '.foo',
                    'handler' => 'txt-foo',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_add_handler.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_add_handler.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'add_handler',
                array (
                    'extension' => '.foo',
                    'handler' => 'txt-foo',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/add_hotlink:
    get:
      description: >-
        This function adds hotlink protection for a site. Hotlink protection
        will redirect users to another URL if they navigate to a file with a
        specified extension, but an allowed URL did not refer them.


        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: add_hotlink
      parameters:
        - description: |-
            File types to hotlink protect.

            **Note:**

            To protect multiple file types, use a comma-separated list.
          examples:
            multiple:
              summary: Add hotlink protection for multiple file extensions.
              value: foo,bar
            single:
              summary: Add hotlink protection for a single file extension.
              value: foo
          in: query
          name: extensions
          required: true
          schema:
            type: string
        - description: The URL to which the system sends hotlinkers.
          in: query
          name: redirect_url
          required: true
          schema:
            example: http://redirect.example.com/
            format: url
            type: string
        - description: >-
            The site to hotlink protect.


            **Note:**


            To protect multiple URLs, separate each URL with a newline
            character.
          examples:
            multiple:
              summary: Add hotlink protection for multiple sites.
              value: |-
                http://example.com/
                http://foobar.com/
            single:
              summary: Add hotlink protection for a single site.
              value: http://example.com/
          in: query
          name: urls
          required: true
          schema:
            type: string
        - description: |-
            Whether the domain allows hotlinks.
            * `1` - Allows.
            * `0` - Does **not** allow.
          in: query
          name: allow_null
          required: false
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_hotlink
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable hotlink protection
      tags:
        - Mime
        - Direct Link Protection (Hotlink)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              add_hotlink \
              urls='http://example.com/' \
              extensions='foo' \
              redirect_url='http://redirect.example.com/'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/add_hotlink?urls=http%3a%2f%2fexample.com%2f&extensions=foo&redirect_url=http%3a%2f%2fredirect.example.com%2f
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_add_hotlink.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_add_hotlink.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/add_hotlink/,
                {
                    'urls' => 'http://example.com/',
                    'extensions' => 'foo',
                    'redirect_url' => 'http://redirect.example.com/',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_add_hotlink.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_add_hotlink.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'add_hotlink',
                array (
                    'urls' => 'http://example.com/',
                    'extensions' => 'foo',
                    'redirect_url' => 'http://redirect.example.com/',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/add_mime:
    get:
      description: >-
        This function adds a MIME type to Apache.


        **Important:**


        When you disable the [Web Server](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: add_mime
      parameters:
        - description: The file extension.
          in: query
          name: extension
          required: true
          schema:
            example: .foo
            type: string
        - description: The MIME type.
          in: query
          name: type
          required: true
          schema:
            example: text/foo
            format: MIME
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_mime
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        enum:
                          - null
                        example: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add MIME type to web server
      tags:
        - Mime
        - Mime Type Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              add_mime \
              type='text/foo' \
              extension='.foo'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/add_mime?type=text%2ffoo&extension=.foo
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_add_mime.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to .../frontend/<theme-name>/api_examples/Mime_add_mime.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/add_mime/,
                {
                    'type' => 'text/foo',
                    'extension' => '.foo',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_add_mime.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_add_mime.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'add_mime',
                array (
                    'type' => 'text/foo',
                    'extension' => '.foo',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/add_redirect:
    get:
      description: |-
        This function adds a redirect to a domain.

        **Important:**

          When you disable the [*Web Server* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: add_redirect
      parameters:
        - description: The domain from which to redirect.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The URL to which to redirect.
          in: query
          name: redirect
          required: true
          schema:
            example: http://example.com/
            format: url
            type: string
        - description: |-
            Whether to redirect all files within a directory to the same
            filename within the destination directory.
            * `1` - Redirect all files within the directory.
            * `0` - Do **not** redirect all files within the directory.
          in: query
          name: redirect_wildcard
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to redirect domains with or without `www`.
            * `2` - Redirect with `www`.
            * `1` - Redirect without `www`.
            * `0` - Redirect with **and** without `www`.
          in: query
          name: redirect_www
          required: false
          schema:
            default: 0
            example: 0
            type: integer
        - description: A specific page from which to redirect.
          in: query
          name: src
          required: false
          schema:
            default: /
            example: /specific-page
            format: url-path
            type: string
        - description: |-
            Whether the redirect is temporary.
             * `permanent`
             * `temp`
          in: query
          name: type
          required: false
          schema:
            default: permanent
            enum:
              - permanent
              - temp
            example: permanent
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_redirect
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example:
                          - Htaccess Installed
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add redirect to domain
      tags:
        - Mime
        - Domain Redirection
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              add_redirect \
              domain='example.com' \
              redirect='http://example.com/'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/add_redirect?domain=example.com&redirect=http%3a%2f%2fexample.com%2f
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_add_redirect.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_add_redirect.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/add_redirect/,
                {
                    'domain' => 'example.com',
                    'redirect' => 'http://example.com/',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_add_redirect.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_add_redirect.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'add_redirect',
                array (
                    'domain' => 'example.com',
                    'redirect' => 'http://example.com/',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/delete_handler:
    get:
      description: |-
        This function deletes an Apache MIME type handler.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_handler
      parameters:
        - description: The file extension.
          in: query
          name: extension
          required: true
          schema:
            example: .foo
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_handler
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove web server MIME type handler
      tags:
        - Mime
        - Handler Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              delete_handler \
              extension='.foo'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/delete_handler?extension=.foo
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_delete_handler.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_delete_handler.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/delete_handler/,
                {
                    'extension' => '.foo',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_delete_handler.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_delete_handler.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'delete_handler',
                array (
                    'extension' => '.foo',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/delete_hotlink:
    get:
      description: |-
        This function removes hotlink protection.

        **Important:**

          When you disable the [Web Server](https://go.cpanel.net/serverroles) role, the system **disables** this function.
      operationId: delete_hotlink
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_hotlink
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable hotlink protection
      tags:
        - Mime
        - Direct Link Protection (Hotlink)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              delete_hotlink
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/delete_hotlink
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_delete_hotlink.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_delete_hotlink.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/delete_hotlink/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_delete_hotlink.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_delete_hotlink.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'delete_hotlink'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/delete_mime:
    get:
      description: |-
        This function removes a MIME type from Apache.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: delete_mime
      parameters:
        - description: The MIME type.
          in: query
          name: type
          required: true
          schema:
            example: text/foo
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_mime
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove MIME type from web server
      tags:
        - Mime
        - Mime Type Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              delete_mime \
              type='text/foo'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/delete_mime?type=text%2ffoo
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_delete_mime.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_delete_mime.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/delete_mime/,
                {
                    'type' => 'text/foo',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_delete_mime.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_delete_mime.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'delete_mime',
                array (
                    'type' => 'text/foo',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/delete_redirect:
    get:
      description: >-
        This function removes a redirect from a domain.


        **Important:**


        When you disable the [Web Server
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: delete_redirect
      parameters:
        - description: The domain name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: "An argument string that contains the arguments of a `Redirect` or\_`RedirectMatch` directives."
          in: query
          name: args
          required: false
          schema:
            default: ''
            example: "redirectme\_http://redirectme.com/"
            type: string
        - description: >-
            The absolute file path to the document root containing the
            `.htaccess` file to change.


            If you don't pass this parameter, the system looks up the document
            root from the `domain` parameter's value.
          in: query
          name: docroot
          required: false
          schema:
            example: /home/example/public_html/
            format: path
            type: string
        - description: The specific page that redirects visitors.
          in: query
          name: src
          required: false
          schema:
            default: ''
            example: redirectpage.html
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_redirect
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove redirect from domain
      tags:
        - Mime
        - Domain Redirection
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              delete_redirect \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/delete_redirect?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_delete_redirect.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_delete_redirect.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/delete_redirect/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_delete_redirect.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_delete_redirect.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'delete_redirect',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/get_redirect:
    get:
      description: This function retrieves a redirection URL for a domain.
      operationId: get_redirect
      parameters:
        - description: The domain's name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_redirect
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          redirection_enabled:
                            description: |-
                              Whether the domain redirects to another URL.
                              * `1` - Redirects.
                              * `0` - Doesn't redirect.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          url:
                            description: The URL to which to the domain redirects.
                            example: http://www.domain.com
                            format: url
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return redirect URL for domain
      tags:
        - Mime
        - Domain Redirection
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              get_redirect \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/get_redirect?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_get_redirect.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_get_redirect.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/get_redirect/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_get_redirect.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_get_redirect.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'get_redirect',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /Mime/list_handlers:
    get:
      description: |-
        This function lists all of Apache's MIME handlers.

        **Important:**

          When you disable the [WebServer role](https://go.cpanel.net/serverroles),
          the system **disables** this function.
      operationId: list_handlers
      parameters:
        - description: Whether to retrieve system or user handlers.
          in: query
          name: type
          required: true
          schema:
            enum:
              - system
              - user
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_handlers
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            extension:
                              description: The handler's extension. A valid file extension.
                              example: .foo
                              type: string
                            handler:
                              description: The handler's name. A valid string.
                              example: text-foo
                              type: string
                            origin:
                              description: |-
                                The handler's owner.
                                - system
                                - user
                              example: user
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return web server's MIME handlers
      tags:
        - Mime
        - Handler Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              list_handlers \
              type='user'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/list_handlers?type=user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_list_handlers.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_list_handlers.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/list_handlers/,
                {
                    'type' => 'user',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_list_handlers.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_list_handlers.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'list_handlers',
                array (
                    'type' => 'user',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/list_hotlinks:
    get:
      description: >-
        This function lists domains with hotlink protection.


        **Important:**


        When you **disable** the [Web Server](https://go.cpanel.net/serverroles)
        role, the system **disables** this function.
      operationId: list_hotlinks
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_hotlinks
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          allow_null:
                            description: >-
                              Whether the domain allows hotlinks from an empty
                              or null referral URL.

                              * `1` - Allows hotlinks.

                              * `0` - Does not allow hotlinks.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          extensions:
                            description: >-
                              A comma-separated list of file types to hotlink
                              protect.
                            example: jpg,jpeg,gif,png,bmp
                            type: string
                          redirect_url:
                            description: The URL to which to send hotlinkers.
                            example: http://redirect.example.com/
                            format: url
                            type: string
                          state:
                            description: |-
                              Whether hotlink protection is enabled.

                              * `enabled`
                              * `disabled`
                            enum:
                              - enabled
                              - disabled
                            example: disabled
                            type: string
                          urls:
                            description: An array of the domains with hotlink protection.
                            items:
                              example: http://example.com/
                              format: url
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains with hotlink protection
      tags:
        - Mime
        - Direct Link Protection (Hotlink)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              list_hotlinks
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/list_hotlinks
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_list_hotlinks.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_list_hotlinks.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/list_hotlinks/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_list_hotlinks.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_list_hotlinks.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'list_hotlinks'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/list_mime:
    get:
      description: |-
        This function lists all of Apache's MIME types.

        **Note:**

          This function does **not** list PHP versions with MIME types when the user or domain enables PHP-FPM. The system displays **only** custom MIME types.

        **Important:**

          When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_mime
      parameters:
        - description: |-
            The MIME types to list.
            * `system` — List the Apache system MIME types.
            * `user` — List the Apache user MIME types.
          in: query
          name: type
          required: true
          schema:
            enum:
              - system
              - user
            example: user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_mime
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            extension:
                              description: The file extension.
                              example: .foo
                              type: string
                            origin:
                              description: |-
                                The handler's owner.
                                *  `system`
                                *  `user`
                              enum:
                                - system
                                - user
                              example: user
                              type: string
                            type:
                              description: The MIME type.
                              example: application/foo
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          * 1 - Success
                          * 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return web server's MIME types
      tags:
        - Mime
        - Mime Type Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              list_mime \
              type='user'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/list_mime?type=user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_list_mime.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_list_mime.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/list_mime/,
                {
                    'type' => 'user',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_list_mime.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_list_mime.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'list_mime',
                array (
                    'type' => 'user',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/list_redirects:
    get:
      description: >-
        This function lists the redirects in an account's .htaccess files.


        **Important:**


        When you disable the [Web Server
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: list_redirects
      parameters:
        - description: >-
            The string with which to filter results.


            ** Note: **


            This will **only** return results that match the `destination`
            parameter **exactly**.
          in: query
          name: destination
          required: false
          schema:
            example: http://example.tld
            type: string
        - description: >-
            A Perl regular expression that filters the results. The system
            matches the regular expression to the `sourceurl` return value.
          in: query
          name: regex
          required: false
          schema:
            example: '"^[a-z0-9_-]{6,18}$"'
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_redirects
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            destination:
                              description: The redirect's destination URL.
                              example: http://redirect.example.com/
                              format: url
                              type: string
                            displaydomain:
                              description: |-
                                The domain to redirect.

                                * `ALL` is the only possible value.
                              enum:
                                - ALL
                              example: ALL
                              type: string
                            displaysourceurl:
                              description: >-
                                The path to the file within the domain to test,
                                relative to the home directory.
                              example: /marceau.html
                              format: url-path
                              type: string
                            docroot:
                              description: >-
                                The absolute file path to the source domain's
                                document root.
                              example: /home/example/public_html
                              format: path
                              type: string
                            domain:
                              description: The domain to redirect.
                              example: example.com
                              format: domain
                              type: string
                            kind:
                              description: >-
                                The kind of redirect.


                                * `rewrite` — The request sent a redirect to
                                another path on the server.

                                * `redirect` — The request sent a redirect for
                                the URL.

                                * `redirectmatch` — The request sent a redirect
                                based on a regular

                                expression match of the URL.
                              enum:
                                - rewrite
                                - redirect
                                - redirectmatch
                              example: rewrite
                              type: string
                            matchwww:
                              description: |-
                                Whether the redirect matches `www.` subdomains.
                                * `1` — Matches.
                                * `0` — Does not match.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            matchwww_text:
                              description: >-
                                Whether the [*Redirect with or without www.*
                                option](https://go.cpanel.net/Redirects) is
                                active.


                                * `checked` — The *Redirect with or without
                                www.* option is active.
                              enum:
                                - checked
                              example: checked
                              type: string
                            opts:
                              description: >-
                                The options that the function passes to Apache
                                as part of

                                the [Rewrite
                                rule](https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l).
                              example: L
                              type: string
                            source:
                              description: >-
                                The path to the file within the domain to test,
                                relative to the home directory.
                              example: /marceau.html
                              format: url-path
                              type: string
                            sourceurl:
                              description: >-
                                The path to the file within the domain to test,
                                relative to the home directory.
                              example: /marceau.html
                              format: url-path
                              type: string
                            statuscode:
                              description: >-
                                The [HTTP Status
                                Code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
                                of the request
                              example: '301'
                              type: string
                            targeturl:
                              description: The redirect's destination URL.
                              example: http://redirect.example.com/
                              format: url
                              type: string
                            type:
                              description: "Whether the redirect is permanent or temporary.\n\n* `permanent` —\_The redirect is permanent.\n* `temporary` —\_The redirect is temporary."
                              enum:
                                - permanent
                                - temporary
                              example: permanent
                              type: string
                            urldomain:
                              description: The domain to redirect.
                              example: example.com
                              format: domain
                              type: string
                            wildcard:
                              description: |-
                                Whether the wildcard subdomains match.

                                * `1` — Matches.
                                * `0` — Does **not** match.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            wildcard_text:
                              description: >-
                                Whether the [*Wild Card
                                Redirect*](https://go.cpanel.net/Redirects)
                                option is active.


                                * `checked` — The *Wild Card Redirect* option is
                                active.
                              enum:
                                - checked
                              example: checked
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return .htaccess files' redirects
      tags:
        - Mime
        - Domain Redirection
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              list_redirects
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/list_redirects
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_list_redirects.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_list_redirects.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/list_redirects/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_list_redirects.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_list_redirects.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'list_redirects'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Mime/redirect_info:
    get:
      description: >-
        This function retrieves redirect information for a URL or `** All Public
        Domains **`.


        **Important:**


        When you disable the [Web Server
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: redirect_info
      parameters:
        - description: The domain for which to retrieve redirector information.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The URL for which to retrieve redirector information.
          in: query
          name: url
          required: true
          schema:
            example: http://redirect.example.com
            format: url
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: redirect_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mime
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          domain:
                            anyOf:
                              - description: The redirect's domain.
                                format: domain
                                type: string
                              - description: '** All Public Domains **'
                                type: string
                            description: >-
                              The redirect's domain, or `** All Public Domains
                              **`.


                              * A valid domain.

                              * `** All Public Domains **`
                            example: example.com
                            type: string
                          url:
                            description: The redirect's URL.
                            example: http://redirect.example.com
                            format: url
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return redirect information
      tags:
        - Mime
        - Handler Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mime \
              redirect_info \
              url='http://redirect.example.com' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mime/redirect_info?url=http%3a%2f%2fredirect.example.com&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mime_redirect_info.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mime_redirect_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mime/,
                q/redirect_info/,
                {
                    'url' => 'http://redirect.example.com',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mime_redirect_info.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mime_redirect_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mime',
                'redirect_info',
                array (
                    'url' => 'http://redirect.example.com',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
      x-cpanel-internal-only: false
  /ModSecurity/disable_all_domains:
    get:
      description: >-
        This function disables ModSecurity™ on a cPanel account's domains.


        **Important:**


        When you disable the [WebServer
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: disable_all_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_all_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: ModSecurity
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          - dependencies:
                              - dallas.com
                            domain: dallas.example.com
                            enabled: 0
                            searchhint: dallas.com
                            type: sub
                          - dependencies:
                              - arkansas.com
                              - kansas.com
                              - nevada.com
                              - newmexico.com
                              - texas.com
                            domain: example.com
                            enabled: 0
                            searchhint: >-
                              arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                            type: main
                          - dependencies:
                              - galveston.com
                            domain: galveston.example.com
                            enabled: 0
                            searchhint: galveston.com
                            type: sub
                          - dependencies:
                              - houston.com
                            domain: houston.example.com
                            enabled: 0
                            searchhint: houston.com
                            type: sub
                          - dependencies:
                              - neworleans.com
                            domain: neworleans.example.com
                            enabled: 0
                            searchhint: neworleans.com
                            type: sub
                          - dependencies:
                              - sanantonio.com
                            domain: sanantonio.example.com
                            enabled: 0
                            searchhint: sanantonio.com
                            type: sub
                        items:
                          properties:
                            dependencies:
                              description: >-
                                An array of domains that your changes to a
                                selected domain affect.
                              example:
                                - arkansas.com
                                - kansas.com
                                - nevada.com
                                - newmexico.com
                                - texas.com
                              items:
                                format: domain
                                type: string
                              type: array
                            domain:
                              description: The cPanel account's domain.
                              example: example.com
                              format: domain
                              type: string
                            enabled:
                              description: |-
                                Whether ModSecurity is enabled on the account.
                                * `1` - Enabled.
                                * `0` - Disabled.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            exception:
                              description: >-
                                An exception error message. The function only
                                returns this value if an error occurs.
                              example: >-
                                An error occurred during the userdata update for
                                domain “example.com”.
                              type: string
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: >-
                                arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                              type: string
                            type:
                              description: |-
                                The domain type.
                                * `main` - A main domain.
                                * `sub` - A subdomain.
                              enum:
                                - main
                                - sub
                              example: main
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable ModSecurity for all domains
      tags:
        - ModSecurity
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ModSecurity \
              disable_all_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ModSecurity/disable_all_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ModSecurity_disable_all_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ModSecurity_disable_all_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ModSecurity/,
                q/disable_all_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ModSecurity_disable_all_domains.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ModSecurity_disable_all_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ModSecurity',
                'disable_all_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /ModSecurity/disable_domains:
    get:
      description: >-
        This function disables ModSecurity™ on specified domains.


        **Important:**


        When you disable the [WebServer
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: disable_domains
      parameters:
        - description: |-
            A comma-separated list of domains that the cPanel account owns.

            **Important:**

            The authenticated cPanel account **must** own these domains.
          in: query
          name: domains
          required: true
          schema:
            example: example.com,dallas.example.com,galveston.example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: ModSecurity
                    type: string
                  result:
                    properties:
                      data:
                        oneOf:
                          - example:
                              - dependencies:
                                  - dallas.com
                                domain: dallas.example.com
                                enabled: 0
                                searchhint: dallas.com
                                type: sub
                              - dependencies:
                                  - arkansas.com
                                  - kansas.com
                                  - nevada.com
                                  - newmexico.com
                                  - texas.com
                                domain: example.com
                                enabled: 0
                                searchhint: >-
                                  arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                                type: main
                              - dependencies:
                                  - galveston.com
                                domain: galveston.example.com
                                enabled: 0
                                searchhint: galveston.com
                                type: sub
                            items:
                              properties:
                                dependencies:
                                  description: >-
                                    An array of domains that your changes to a
                                    selected domain affect.
                                  example:
                                    - arkansas.com
                                    - kansas.com
                                    - nevada.com
                                    - newmexico.com
                                    - texas.com
                                  items:
                                    format: domain
                                    type: string
                                  type: array
                                domain:
                                  description: The cPanel account's domain.
                                  example: example.com
                                  format: domain
                                  type: string
                                enabled:
                                  description: >-
                                    Whether ModSecurity is enabled on the
                                    domain.

                                    * `1` - Enabled.

                                    * `0` - Disabled.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                exception:
                                  description: >-
                                    An exception error message. The function
                                    only returns this value if an error occurs.
                                  example: >-
                                    An error occurred during the userdata update
                                    for domain “example.com”.
                                  type: string
                                searchhint:
                                  description: >-
                                    A comma-separated list of domain-related
                                    search terms.
                                  example: >-
                                    arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                                  type: string
                                type:
                                  description: |-
                                    The domain type.
                                    * `main` - A main domain.
                                    * `sub` - A subdomain.
                                  enum:
                                    - main
                                    - sub
                                  example: main
                                  type: string
                              type: object
                            type: array
                          - properties:
                              no_domains_provided:
                                description: Indicates caller error on API call.
                                enum:
                                  - 1
                                example: 1
                                type: integer
                            type: object
                          - properties:
                              invalid_domains:
                                description: List of invalid domains provided by caller.
                                example:
                                  - example.invalid
                                items:
                                  type: string
                                type: array
                              invalid_domains_provided:
                                description: Indicates caller error on API call.
                                enum:
                                  - 1
                                example: 1
                                type: integer
                            type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable ModSecurity for selected domains
      tags:
        - ModSecurity
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ModSecurity \
              disable_domains \
              domains='example.com,dallas.example.com,galveston.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ModSecurity/disable_domains?domains=example.com%2cdallas.example.com%2cgalveston.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ModSecurity_disable_domains.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ModSecurity_disable_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ModSecurity/,
                q/disable_domains/,
                {
                    'domains' => 'example.com,dallas.example.com,galveston.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ModSecurity_disable_domains.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ModSecurity_disable_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ModSecurity',
                'disable_domains',
                array (
                    'domains' => 'example.com,dallas.example.com,galveston.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /ModSecurity/enable_all_domains:
    get:
      description: >-
        This function enables ModSecurity™ on a cPanel account's domains.


        **Important:**


        When you disable the [WebServer
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function
      operationId: enable_all_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_all_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: ModSecurity
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          - dependencies:
                              - dallas.com
                            domain: dallas.example.com
                            enabled: 1
                            searchhint: dallas.com
                            type: sub
                          - dependencies:
                              - arkansas.com
                              - kansas.com
                              - nevada.com
                              - newmexico.com
                              - texas.com
                            domain: example.com
                            enabled: 1
                            searchhint: >-
                              arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                            type: main
                          - dependencies:
                              - galveston.com
                            domain: galveston.example.com
                            enabled: 1
                            searchhint: galveston.com
                            type: sub
                          - dependencies:
                              - houston.com
                            domain: houston.example.com
                            enabled: 1
                            searchhint: houston.com
                            type: sub
                          - dependencies:
                              - neworleans.com
                            domain: neworleans.example.com
                            enabled: 1
                            searchhint: neworleans.com
                            type: sub
                          - dependencies:
                              - sanantonio.com
                            domain: sanantonio.example.com
                            enabled: 1
                            searchhint: sanantonio.com
                            type: sub
                        items:
                          properties:
                            dependencies:
                              description: >-
                                An array of domains that your changes to a
                                selected domain affect.
                              example:
                                - arkansas.com
                                - kansas.com
                                - nevada.com
                                - newmexico.com
                                - texas.com
                              items:
                                format: domain
                                type: string
                              type: array
                            domain:
                              description: The cPanel account's domain.
                              example: example.com
                              format: domain
                              type: string
                            enabled:
                              description: |-
                                Whether ModSecurity is enabled on the account.
                                * `1` - Enabled.
                                * `0` - Disabled.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            exception:
                              description: >-
                                An exception error message. The function only
                                returns this value if an error occurs.
                              example: >-
                                An error occurred during the userdata update for
                                domain “example.com”.
                              type: string
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: >-
                                arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                              type: string
                            type:
                              description: |-
                                The domain type.
                                * `main` - A main domain.
                                * `sub` - A subdomain.
                              enum:
                                - main
                                - sub
                              example: main
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable ModSecurity for all domains
      tags:
        - ModSecurity
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ModSecurity \
              enable_all_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ModSecurity/enable_all_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ModSecurity_enable_all_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ModSecurity_enable_all_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ModSecurity/,
                q/enable_all_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ModSecurity_enable_all_domains.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ModSecurity_enable_all_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ModSecurity',
                'enable_all_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /ModSecurity/enable_domains:
    get:
      description: >-
        This function enables ModSecurity™ for specified domains.


        **Important:**


        When you disable the [WebServer
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: enable_domains
      parameters:
        - description: |-
            A comma-separated list of domains for which to enable ModSecurity.

            **Important:**

            The authenticated cPanel account **must** own these domains.
          in: query
          name: domains
          required: true
          schema:
            example: example.com,dallas.example.com,galveston.example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: ModSecurity
                    type: string
                  result:
                    properties:
                      data:
                        oneOf:
                          - example:
                              - dependencies:
                                  - dallas.com
                                domain: dallas.example.com
                                enabled: 1
                                searchhint: dallas.com
                                type: sub
                              - dependencies:
                                  - arkansas.com
                                  - kansas.com
                                  - nevada.com
                                  - newmexico.com
                                  - texas.com
                                domain: example.com
                                enabled: 1
                                searchhint: >-
                                  arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                                type: main
                              - dependencies:
                                  - galveston.com
                                domain: galveston.example.com
                                enabled: 1
                                searchhint: galveston.com
                                type: sub
                            items:
                              properties:
                                dependencies:
                                  description: >-
                                    An array of domains that your changes to a
                                    selected domain affect.
                                  example:
                                    - arkansas.com
                                    - kansas.com
                                    - nevada.com
                                    - newmexico.com
                                    - texas.com
                                  items:
                                    format: domain
                                    type: string
                                  type: array
                                domain:
                                  description: The cPanel account's domain.
                                  example: example.com
                                  format: domain
                                  type: string
                                enabled:
                                  description: >-
                                    Whether ModSecurity is enabled on the
                                    domain.

                                    * `1` - Enabled.

                                    * `0` - Disabled.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                exception:
                                  description: >-
                                    An exception error message. The function
                                    only returns this value if an error occurs.
                                  example: >-
                                    An error occurred during the userdata update
                                    for domain “example.com”.
                                  type: string
                                searchhint:
                                  description: >-
                                    A comma-separated list of domain-related
                                    search terms.
                                  example: >-
                                    arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                                  type: string
                                type:
                                  description: |-
                                    The domain type.
                                    * `main` - A main domain.
                                    * `sub` - A subdomain.
                                  enum:
                                    - main
                                    - sub
                                  example: main
                                  type: string
                              type: object
                            type: array
                          - properties:
                              no_domains_provided:
                                description: Indicates caller error on API call.
                                enum:
                                  - 1
                                example: 1
                                type: integer
                            type: object
                          - properties:
                              invalid_domains:
                                description: List of invalid domains provided by caller.
                                example:
                                  - example.invalid
                                items:
                                  type: string
                                type: array
                              invalid_domains_provided:
                                description: Indicates caller error on API call.
                                enum:
                                  - 1
                                example: 1
                                type: integer
                            type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable ModSecurity for selected domains
      tags:
        - ModSecurity
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ModSecurity \
              enable_domains \
              domains='example.com,dallas.example.com,galveston.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ModSecurity/enable_domains?domains=example.com%2cdallas.example.com%2cgalveston.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ModSecurity_enable_domains.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ModSecurity_enable_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ModSecurity/,
                q/enable_domains/,
                {
                    'domains' => 'example.com,dallas.example.com,galveston.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ModSecurity_enable_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ModSecurity_enable_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ModSecurity',
                'enable_domains',
                array (
                    'domains' => 'example.com,dallas.example.com,galveston.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /ModSecurity/has_modsecurity_installed:
    get:
      description: >-
        This function checks whether ModSecurity™ is installed on a server.


        **Important:**


        When you disable the [Web Server
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: has_modsecurity_installed
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_modsecurity_installed
                    type: string
                  module:
                    description: The name of the module called.
                    example: ModSecurity
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          installed:
                            description: |-
                              Whether ModSecurity is installed on the server.
                              * `1` - Installed.
                              * `0` - Not installed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return ModSecurity installation status
      tags:
        - ModSecurity
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ModSecurity \
              has_modsecurity_installed
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ModSecurity/has_modsecurity_installed
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ModSecurity_has_modsecurity_installed.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ModSecurity_has_modsecurity_installed.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ModSecurity/,
                q/has_modsecurity_installed/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ModSecurity_has_modsecurity_installed.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ModSecurity_has_modsecurity_installed.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ModSecurity',
                'has_modsecurity_installed'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /ModSecurity/list_domains:
    get:
      description: >-
        This function returns ModSecurity's™ status for a cPanel account's
        domains.


        **Important:**


        When you disable the [WebServer
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: ModSecurity-list_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: ModSecurity
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          - dependencies:
                              - dallas.com
                            domain: dallas.example.com
                            enabled: 1
                            searchhint: dallas.com
                            type: sub
                          - dependencies:
                              - arkansas.com
                              - kansas.com
                              - nevada.com
                              - newmexico.com
                              - texas.com
                            domain: example.com
                            enabled: 1
                            searchhint: >-
                              arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                            type: main
                          - dependencies:
                              - galveston.com
                            domain: galveston.example.com
                            enabled: 1
                            searchhint: galveston.com
                            type: sub
                          - dependencies:
                              - houston.com
                            domain: houston.example.com
                            enabled: 0
                            searchhint: houston.com
                            type: sub
                          - dependencies:
                              - neworleans.com
                            domain: neworleans.example.com
                            enabled: 0
                            searchhint: neworleans.com
                            type: sub
                          - dependencies:
                              - sanantonio.com
                            domain: sanantonio.example.com
                            enabled: 0
                            searchhint: sanantonio.com
                            type: sub
                        items:
                          properties:
                            dependencies:
                              description: >-
                                An array of domains that your changes to a
                                selected domain affect.
                              example:
                                - arkansas.com
                                - kansas.com
                                - nevada.com
                                - newmexico.com
                                - texas.com
                              items:
                                format: domain
                                type: string
                              type: array
                            domain:
                              description: The cPanel account's domain.
                              example: example.com
                              format: domain
                              type: string
                            enabled:
                              description: |-
                                Whether ModSecurity is enabled for the account.
                                * `1` - Enabled.
                                * `0` - Disabled.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: >-
                                arkansas.com,kansas.com,nevada.com,newmexico.com,texas.com
                              type: string
                            type:
                              description: |-
                                The domain type.
                                * `main` - A main domain.
                                * `sub` - A subdomain.
                              enum:
                                - main
                                - sub
                              example: main
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          modsec:
                            properties:
                              total_disabled:
                                description: The total number of disabled entries.
                                example: 3
                                type: integer
                              total_enabled:
                                description: The total number of enabled entries.
                                example: 3
                                type: integer
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return ModSecurity domains' status
      tags:
        - ModSecurity
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ModSecurity \
              list_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ModSecurity/list_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ModSecurity_list_domains.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/ModSecurity_list_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ModSecurity/,
                q/list_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ModSecurity_list_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/ModSecurity_list_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ModSecurity',
                'list_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.46
  /Mysql/add_host:
    get:
      description: >-
        This function authorizes a remote MySQL® host to access the account's
        databases.


        **Important:**


        When you disable the [MySQL role](https://go.cpanel.net/serverroles)
         and remote MySQL is **not** already configured,
         the system **disables** this function.
      operationId: add_host
      parameters:
        - description: |-
            The remote MySQL server's hostname or IP address.

            You may use the following IP address formats:

            * `192.168.1.6` — IP address.
            * `192.168.%.%` — Range with the percent (%) symbol as a wildcard.
            * `192.168.0.0/16` — Range in CIDR format.
          example: 192.168.1.6
          in: query
          name: host
          required: true
          schema:
            oneOf:
              - example: 192.168.1.6
                format: ipv4
                type: string
              - example: remote.example.com
                format: domain
                type: string
              - description: IP address range with the percent (%) symbol as a wildcard.
                example: 192.168.%.%
                type: string
              - description: IP address range in CIDR format.
                example: 192.168.0.0/16
                type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_host
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: |-
                          List of warnings generated by the API.
                          Warnings describe non-critical failures or
                           other problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable remote MySQL host access
      tags:
        - Mysql
        - Remote Databases
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              add_host \
              host='192.168.1.6'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/add_host?host=192.168.1.6
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_add_host.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_add_host.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/add_host/,
                {
                    'host' => '192.168.1.6',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_add_host.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_add_host.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'add_host',
                array (
                    'host' => '192.168.1.6',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Mysql/add_host_note:
    get:
      description: >-
        This function adds a note about a remote MySQL® server.


        **Important:**


        * If you attempt to add a note to an unauthorized remote MySQL server,
        the function will fail.

        * When you **disable** the [MySQL
        role](https://go.cpanel.net/serverroles), the system disables this
        function.
      operationId: Mysql-add_host_note
      parameters:
        - description: |-
            The remote MySQL server's hostname or IP address.

            You may use the following IP address formats:

            * `192.168.1.6` — IP address.
            * `192.168.%.%` — Range with the percent (%) symbol as a wildcard.
            * `192.168.0.0/16` — Range in CIDR format.
          example: 192.168.1.6
          in: query
          name: host
          required: true
          schema:
            oneOf:
              - example: 192.168.1.6
                format: ipv4
                type: string
              - example: remote.example.com
                format: domain
                type: string
              - description: IP address range with the percent (%) symbol as a wildcard.
                example: 192.168.%.%
                type: string
              - description: IP address range in CIDR format.
                example: 192.168.0.0/16
                type: string
        - description: note that describes the remote MySQL server.
          in: query
          name: note
          required: true
          schema:
            example: A remote mysql server for storing my data
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_host_note
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API.

                          Warnings describe non-critical failures or other
                          problematic conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add remote MySQL host note
      tags:
        - Mysql
        - Remote Databases
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              add_host_note \
              host='192.168.1.6' \
              note='A remote mysql server for storing my data'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/add_host_note?host=192.168.1.6&note=A%20remote%20mysql%20server%20for%20storing%20my%20data
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_add_host_note.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_add_host_note.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/add_host_note/,
                {
                    'host' => '192.168.1.6',
                    'note' => 'A remote mysql server for storing my data',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_add_host_note.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_add_host_note.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'add_host_note',
                array (
                    'host' => '192.168.1.6',
                    'note' => 'A remote mysql server for storing my data',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /Mysql/check_database:
    get:
      description: "This function checks for errors in all of the tables in a\_MySQL® database.\n\n**Important:**\n\nWhen you disable the [MySQL role](https://go.cpanel.net/serverroles) **and**\nremote MySQL is **not** already configured, the system **disables** this function."
      operationId: Mysql-check_database
      parameters:
        - description: The database's name.
          in: query
          name: name
          required: true
          schema:
            example: example_test
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: check_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array that contains a response message for each of
                          a database's tables in sequence.
                        items:
                          properties:
                            msg_text:
                              description: The message's contents.
                              example: OK
                              type: string
                            msg_type:
                              description: >-
                                The type of message.

                                * `status`

                                * `error`

                                * `info`

                                * `note`

                                * `warning`


                                **Note:**


                                For more information, read [MySQL's `CHECK
                                TABLE`
                                documentation](http://dev.mysql.com/doc/refman/5.7/en/check-table.html).
                              enum:
                                - status
                                - error
                                - info
                                - note
                                - warning
                              example: status
                              type: string
                            table:
                              description: The table's name.
                              example: table1
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API.

                          Warnings describe non-critical failures or other
                          problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate MySQL database integrity
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              check_database \
              name='example_test'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/check_database?name=example_test
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_check_database.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_check_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/check_database/,
                {
                    'name' => 'example_test',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_check_database.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_check_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'check_database',
                array (
                    'name' => 'example_test',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Mysql/create_database:
    get:
      description: |-
        This function creates a MySQL® database.

        **Important:**

          When you disable the [MySQL/MariaDB role](https://go.cpanel.net/howtouseserverprofiles#roles) **and** remote MySQL is **not** already configured, the system **disables** this function.
      operationId: create_database
      parameters:
        - description: The new database's name.
          in: query
          name: name
          required: true
          schema:
            example: newdb
            type: string
        - description: The desired prefix size.
          in: query
          name: prefix-size
          required: false
          schema:
            default: 16
            enum:
              - 8
              - 16
            example: 16
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create MySQL database
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              create_database \
              name='newdb'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/create_database?name=newdb
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_create_database.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_create_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/create_database/,
                {
                    'name' => 'newdb',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_create_database.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_create_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'create_database',
                array (
                    'name' => 'newdb',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/create_user:
    get:
      description: >-
        This function creates a MySQL® database user.


        **Important:**


        When you **disable** the [MySQL role](https://go.cpanel.net/serverroles)
        and remote MySQL is not already configured, the system disables this
        function.
      operationId: Mysql-create_user
      parameters:
        - description: >-
            A valid database username.


            Important:

            ====


            To learn more about database username limits, check your database
            type:


            MySQL 5.6

            ----


            MySQL version 5.6 limits the database username to 16 characters. The
            server uses the first nine characters of this limit for the database
            prefix. The database prefix uses the cPanel account's username and
            an underscore (`_`). The server only applies the first eight
            characters of the cPanel account's username.


            For example:


            * A `db_` database prefix allows MySQL usernames of up to 13
            characters.

            * An `example_` database prefix allows MySQL usernames of up to
            eight characters.


            MySQL 5.7+

            ----


            MySQL versions 5.7 and later limit the database username to 32
            characters. The server uses the first nine characters of this limit
            for the database prefix. The database prefix uses the cPanel
            account's username and an underscore (`_`). The server only applies
            the first eight characters of the cPanel account's username.


            For example:


            * A `db_` database prefix allows MySQL usernames of up to 29
            characters.

            * An `example_` database prefix allows MySQL usernames of up to 24
            characters.


            MariaDB

            ----


            MariaDB limits the database username to 47 characters. The server
            uses the first nine characters of this limit for the database
            prefix. The database prefix uses the cPanel account's username and
            an underscore (`_`). The server only applies the first eight
            characters of the cPanel account's username.


            For example:


            * A `db_` database prefix allows MariaDB usernames of up to 44
            characters.

            * An `example_` database prefix allows MariaDB usernames of up to 39
            characters.
          in: query
          name: name
          required: true
          schema:
            example: dbuser
            type: string
        - description: The new user's password.
          in: query
          name: password
          required: true
          schema:
            example: 12345luggage
            type: string
        - description: The desired prefix size.
          in: query
          name: prefix-size
          required: false
          schema:
            default: 16
            enum:
              - 8
              - 16
            example: 16
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API.

                          Warnings describe non-critical failures or other
                          problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create MySQL user
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              create_user \
              name='dbuser' \
              password='12345luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/create_user?name=dbuser&password=12345luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_create_user.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_create_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/create_user/,
                {
                    'name' => 'dbuser',
                    'password' => '12345luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_create_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_create_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'create_user',
                array (
                    'name' => 'dbuser',
                    'password' => '12345luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/delete_database:
    get:
      description: >-
        This function deletes a MySQL® database.


        **Important:**


        when you disable the [MySQL/MariaDB
        role](https://go.cpanel.net/serverroles#roles) **and**

        remote MySQL is **not** already configured, the system **disables** this
        function.
      operationId: delete_database
      parameters:
        - description: The database's name.
          in: query
          name: name
          required: true
          schema:
            example: example
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: |-
                          List of warnings generated by the API.
                          Warnings describe non-critical failures or
                           other problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete MySQL database
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              delete_database \
              name='example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/delete_database?name=example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_delete_database.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_delete_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/delete_database/,
                {
                    'name' => 'example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_delete_database.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_delete_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'delete_database',
                array (
                    'name' => 'example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Mysql/delete_host:
    get:
      description: >-
        This function removes a remote MySQL® host's access to the account's
        databases.


        **Important:**


        When you disable the [MySQL role](https://go.cpanel.net/serverroles) and
        remote MySQL is not already configured, the system **disables** this
        function.
      operationId: delete_host
      parameters:
        - description: |-
            The remote MySQL server's hostname, IP Address, or IP address range.

            **Note:**
            You may use the following IP address formats:

            192.168.1.6 — IP address.
            192.168.%.% — Range with the percent (%) symbol as a wildcard.
            192.168.0.0/16 — Range in CIDR format.
          in: query
          name: host
          required: true
          schema:
            example: remote.example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_host
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Disable remote MySQL host access
      tags:
        - Mysql
        - Remote Databases
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              delete_host \
              host='remote.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/delete_host?host=remote.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_delete_host.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_delete_host.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/delete_host/,
                {
                    'host' => 'remote.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_delete_host.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_delete_host.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'delete_host',
                array (
                    'host' => 'remote.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Mysql/delete_user:
    get:
      description: >-
        This function deletes a MySQL® user.


        **Important:**


        When you disable the [MySQL role](https://go.cpanel.net/serverroles) and
        remote MySQL is not already configured, the system **disables** this
        function.
      operationId: Mysql::delete_user
      parameters:
        - description: The MySQL user's name.
          in: query
          name: name
          required: true
          schema:
            example: example
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete MySQL user
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              delete_user \
              name='example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/delete_user?name=example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_delete_user.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_delete_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/delete_user/,
                {
                    'name' => 'example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_delete_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_delete_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'delete_user',
                array (
                    'name' => 'example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Mysql/dump_database_schema:
    get:
      description: >-
        This function returns a string that you can give to MySQL® to recreate a
        particular database’s schema.


        **Important:**

          When you disable the [MySQL/MariaDB role](https://go.cpanel.net/serverroles) **and** remote MySQL is **not** configured, the system **disables** this function.
      operationId: dump_database_schema
      parameters:
        - description: The database's name.
          in: query
          name: dbname
          required: true
          schema:
            example: username_example_db
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: dump_database_schema
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        description: The string to give to MySQL.
                        example: "-- MySQL dump 10.13  Distrib 5.7.26, for Linux (x86_64)\n--\n-- Host: localhost    Database:username_example_db\n-- ------------------------------------------------------\n-- Serverversion\t5.7.26\n\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*/;\n/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\n/*!40101 SET@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n/*!40101 SET NAMES utf8mb4*/;\n/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;\n/*!40103 SET TIME_ZONE='+00:00'*/;\n/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;\n/*!40014 SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;\n/*!40101 SET@OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;\n/*!40111 SE@OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;\n\n--\n-- Current Database:`username_example_db`\n--\n\nCREATE DATABASE /*!32312 IF NOT EXISTS*/ `username_example_d/*!40100 DEFAULT CHARACTER SET latin1 */;\n\nUSE `username_example_db`;\n/*!40103 SETTIME_ZONE=@OLD_TIME_ZONE */;\n\n/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;\n/*!40014 SETFOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;\n/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS*/;\n/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\n/*!40101 SETCHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n/*!40101 SETCOLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES*/;\n\n-- Dump completed on 2019-06-06  9:44:04\n"
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL database schema
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              dump_database_schema \
              dbname='username_example_db'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/dump_database_schema?dbname=username_example_db
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_dump_database_schema.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_dump_database_schema.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/dump_database_schema/,
                {
                    'dbname' => 'username_example_db',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_dump_database_schema.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_dump_database_schema.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'dump_database_schema',
                array (
                    'dbname' => 'username_example_db',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Mysql/get_host_notes:
    get:
      description: >-
        This function returns the notes associated with the account's remote
        MySQL® hosts.


        **Important:**

          When you disable the [*MySQL/MariaDB* role](https://go.cpanel.net/serverroles)
          **and** remote MySQL is **not** already configured, the system **disables** this function.
      operationId: get_host_notes
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_host_notes
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: >-
                            The notes associated with the account's Remote MySQL
                            hosts.
                          example: Located somewhere in the Ford Galaxy
                          type: string
                        description: >-
                          The keys are remote MySQL hostnames or IP addresses
                          and values are their corresponding notes.
                        example:
                          1.2.3.45: The combination on my luggage
                          12.34.56.78: Located somewhere in the Ford Galaxy
                          8.8.8.8: Located on Spaceball 1
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return remote MySQL host notes
      tags:
        - Mysql
        - Remote Databases
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              get_host_notes
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/get_host_notes
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_get_host_notes.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_get_host_notes.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/get_host_notes/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_get_host_notes.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_get_host_notes.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'get_host_notes'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /Mysql/get_privileges_on_database:
    get:
      description: >-
        This function lists a MySQL® database user's privileges.


        **Important:**


        When you disable the [MySQL role](https://go.cpanel.net/serverroles)

        and remote MySQL is not already configured, the system disables this
        function.
      operationId: Mysql-get_privileges_on_database
      parameters:
        - description: The database name.
          in: query
          name: database
          required: true
          schema:
            example: mydb
            type: string
        - description: >-
            The database user's name.


            **Important:**


            If database prefixing is enabled, you **must** prefix this value
            with the account prefix and an underscore (`_`).


            For example, for the `dbuser` user on the `user` cPanel account,
            pass in a value of `user_dbuser`.
          in: query
          name: user
          required: true
          schema:
            example: dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_privileges_on_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of privileges.


                          **Note:**


                          If the database user does not have privileges on the
                          database database,

                          this array will return empty.

                          * `ALL PRIVILEGES`

                          * One or more of the following individual privileges:
                            * `ALTER`
                            * `ALTER ROUTINE`
                            * `CREATE`
                            * `CREATE ROUTINE`
                            * `CREATE TEMPORARY TABLES`
                            * `CREATE VIEW`
                            * `DELETE`
                            * `DROP`
                            * `EVENT`
                            * `EXECUTE`
                            * `INDEX`
                            * `INSERT`
                            * `LOCK TABLES`
                            * `REFERENCES`
                            * `SELECT`
                            * `SHOW VIEW`
                            * `TRIGGER`
                            * `UPDATE`
                        items:
                          example: CREATE
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API.

                          Warnings describe non-critical failures or other
                          problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL user privileges
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              get_privileges_on_database \
              user='dbuser' \
              database='mydb'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/get_privileges_on_database?user=dbuser&database=mydb
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_get_privileges_on_database.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_get_privileges_on_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/get_privileges_on_database/,
                {
                    'user' => 'dbuser',
                    'database' => 'mydb',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_get_privileges_on_database.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_get_privileges_on_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'get_privileges_on_database',
                array (
                    'user' => 'dbuser',
                    'database' => 'mydb',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/get_restrictions:
    get:
      description: >-
        This function lists a MySQL® database's name, username length
        restrictions, and database prefix.


        **Important:**

          When you disable the [*MySQL/MariaDB* role](https://go.cpanel.net/serverroles)
          **and** remote MySQL is **not** already configured, the system **disables** this function.
      operationId: get_restrictions
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_restrictions
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          max_database_name_length:
                            description: The maximum length of a MySQL database name.
                            example: 64
                            minimum: 1
                            type: integer
                          max_username_length:
                            description: >-
                              The maximum length of a MySQL database user's
                              name.
                            example: 16
                            minimum: 1
                            type: integer
                          prefix:
                            description: >-
                              The account's database prefix, if database
                              prefixing is enabled.

                              * If database prefixing is enabled, a string of up
                              to the first eight characters of the cPanel
                              account username, and an underscore (_).

                              * If database prefixing is disabled, this is null.
                            example: user_
                            nullable: true
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL name length restrictions
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              get_restrictions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/get_restrictions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_get_restrictions.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_get_restrictions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/get_restrictions/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_get_restrictions.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_get_restrictions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'get_restrictions'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/get_server_information:
    get:
      description: |-
        This function returns information about the account's MySQL® host.

        **Important:**

          When you disable the [MySQL role](https://go.cpanel.net/serverroles) **and** remote MySQL is **not** already configured, the system **disables** this function.
      operationId: get_server_information
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_server_information
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          host:
                            description: The MySQL server's hostname or IP address.
                            oneOf:
                              - example: 192.0.2.1
                                format: ipv4
                                type: string
                              - example: remote.example.com
                                format: domain
                                type: string
                          is_remote:
                            description: |-
                              Whether the host is a remote MySQL server.
                              * `1` - Remote host.
                              * `0` - Local host.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          version:
                            description: The MySQL server's version.
                            example: 5.6.23
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL server host information and version
      tags:
        - Mysql
        - Database Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              get_server_information
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/get_server_information
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_get_server_information.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_get_server_information.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/get_server_information/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_get_server_information.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_get_server_information.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'get_server_information'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Mysql/list_databases:
    get:
      description: >-
        This function lists an account's MySQL® databases.


        **Important:**


        When you disable the [*MySQL/MariaDB*
        role](https://go.cpanel.net/serverroles) **and** remote MySQL is **not**
        configured, the system **disables** this function.
      operationId: list_databases
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_databases
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        description: Information about the database.
                        items:
                          properties:
                            database:
                              description: The database name.
                              example: user_db
                              type: string
                            disk_usage:
                              description: The disk space that the database uses, in bytes.
                              example: 673
                              minimum: 0
                              type: integer
                            users:
                              description: >-
                                A list of database usernames.


                                **Note:**


                                If no users exist on a database, the function
                                returns an empty array.
                              example:
                                - db_user
                                - db2_user
                              items:
                                type: string
                              type: array
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL databases
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              list_databases
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/list_databases
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_list_databases.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_list_databases.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/list_databases/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_list_databases.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_list_databases.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'list_databases'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Mysql/list_routines:
    get:
      description: |-
        This function returns a database user's MySQL® routines.

        **Important:**

          When you disable the [MySQL/MariaDB role](https://go.cpanel.net/serverroles) **and**
          remote MySQL is **not** configured, the system **disables** this function.
      operationId: list_routines
      parameters:
        - description: >-
            The database user for whom to return MySQL routines. If you don't
            specify a database user, this function returns the MySQL routines
            for all database users.
          in: query
          name: database_user
          required: false
          schema:
            example: db_user
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_routines
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of MySQL routines. If no routines exist, the
                          function returns an empty array.
                        example:
                          - cptest_newdb.hello
                          - cptest_newdb.my_routine
                        items:
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL user routines
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              list_routines
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/list_routines
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_list_routines.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_list_routines.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/list_routines/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_list_routines.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_list_routines.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'list_routines'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Mysql/list_users:
    get:
      description: |-
        This function lists an account's MySQL® database users.

        **Important:**

          When you disable the [MySQL/MariaDB role](https://go.cpanel.net/serverroles) **and**
          remote MySQL is **not** configured, the system **disables** this function.
      operationId: Mysql-list_users
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_users
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of database information objects.
                        items:
                          properties:
                            databases:
                              description: >-
                                An array of databases that belong to the

                                database user.


                                **Note:**


                                If no users are assigned to a database, the
                                function returns

                                an empty array.
                              example:
                                - user_database1
                                - user_database2
                              items:
                                type: string
                              type: array
                            shortuser:
                              description: The short version of the database username.
                              example: user1
                              type: string
                            user:
                              description: The database username.
                              example: example_user1
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL users
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              list_users
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/list_users
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_list_users.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_list_users.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/list_users/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_list_users.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_list_users.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'list_users'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /Mysql/locate_server:
    get:
      description: >-
        This function returns information about the account's MySQL® host.


        **Important:**


        When you disable the [MySQL/MariaDB
        role](https://go.cpanel.net/serverroles#roles) **and** remote MySQL is
        **not** already configured, the system **disables** this function.
      operationId: locate_server
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: locate_server
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          is_remote:
                            description: |-
                              Whether the host is a remote MySQL server.
                              * `1` - Remote host.
                              * `0` - Local host.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          remote_host:
                            description: The remote MySQL server's hostname or IP address.
                            oneOf:
                              - description: An IP address.
                                example: 192.0.2.1
                                format: ipv4
                                type: string
                              - description: A hostname.
                                example: remote.example.com
                                format: domain
                                type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return MySQL server host information
      tags:
        - Mysql
        - Database Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              locate_server
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/locate_server
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_locate_server.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_locate_server.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/locate_server/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_locate_server.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_locate_server.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'locate_server'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Mysql/rename_database:
    get:
      description: >-
        This function renames a MySQL® database.


        MySQL does not allow you to rename a database. When cPanel & WHM
        "renames" a database, the

        system performs the following steps:

        1. The system creates a new database.

        2. The system moves data from the old database to the new database.

        3. The system recreates grants and stored code in the new database.

        4. The system deletes the old database and its grants.


        **Warning:**


        * It is potentially dangerous to rename a MySQL database. We
        **strongly** recommend that you

        perform a backup of the database before you attempt to rename it.

        * If any of the first three steps fail, the system returns an error and
        attempts to restore the database's original state.
         If the restoration process fails, the API function's error response describes these additional failures.
        * In rare cases, the system creates the second database successfully,
        but fails to delete the old database or grants.
         The system treats the rename action as a success; however,
         the API function returns warnings that describe the failure to delete the old database or grants.

        **Important:**


        When you disable the [MySQL/MariaDB
        role](https://go.cpanel.net/serverroles)

        **and** remote MySQL is **not** already configured, the system
        **disables** this function.
      operationId: Mysql-rename_database
      parameters:
        - description: >-
            The database's new name.


            **Important:**


            * If database prefixing is enabled, you **must** prefix this value
            with the account prefix

            and an underscore (`_`). For example, for the `dbuser` database on
            the user cPanel account,

            pass in a value of `user_dbuser`.

            * The maximum length of the database name is 64 characters. However,
            due to the method that

            cPanel & WHM uses to store MySQL database names, each underscore
            character requires two

            characters of that limit. Therefore, if you enable database
            prefixing, the maximum length of

            the database name is 63 characters, which includes both the database
            prefix and the

            underscore character. Each additional underscore requires another
            two characters of that

            limit.
          in: query
          name: newname
          required: true
          schema:
            example: newlyrenamed
            maxLength: 64
            type: string
        - description: The database's current name.
          in: query
          name: oldname
          required: true
          schema:
            example: mydb
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rename_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API.

                          Warnings describe non-critical failures or other
                          problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update MySQL database name
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              rename_database \
              oldname='mydb' \
              newname='newlyrenamed'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/rename_database?oldname=mydb&newname=newlyrenamed
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_rename_database.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_rename_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/rename_database/,
                {
                    'oldname' => 'mydb',
                    'newname' => 'newlyrenamed',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_rename_database.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_rename_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'rename_database',
                array (
                    'oldname' => 'mydb',
                    'newname' => 'newlyrenamed',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/rename_user:
    get:
      description: |-
        This function renames a MySQL® database user.

        **Important:**

        When you disable the [MySQL role](https://go.cpanel.net/serverroles)
         and remote MySQL is **not** already configured,
         the system **disables** this function.
      operationId: rename_user
      parameters:
        - description: >-
            The user's new name.


            Important:

            ====


            To learn more about database username limits, check your database
            type:


            MySQL 5.6

            ----


            MySQL version 5.6 limits the database username to 16 characters. The
            server uses the first nine characters of this limit for the database
            prefix. The database prefix uses the cPanel account's username and
            an underscore (`_`). The server only applies the first eight
            characters of the cPanel account's username.


            For example:


            * A `db_` database prefix allows MySQL usernames of up to 13
            characters.

            * An `example_` database prefix allows MySQL usernames of up to
            eight characters.


            MySQL 5.7+

            ----


            MySQL versions 5.7 and later limit the database username to 32
            characters. The server uses the first nine characters of this limit
            for the database prefix. The database prefix uses the cPanel
            account's username and an underscore (`_`). The server only applies
            the first eight characters of the cPanel account's username.


            For example:


            * A `db_` database prefix allows MySQL usernames of up to 29
            characters.

            * An `example_` database prefix allows MySQL usernames of up to 24
            characters.


            MariaDB

            ----


            MariaDB limits the database username to 47 characters. The server
            uses the first nine characters of this limit for the database
            prefix. The database prefix uses the cPanel account's username and
            an underscore (`_`). The server only applies the first eight
            characters of the cPanel account's username.


            For example:


            * A `db_` database prefix allows MariaDB usernames of up to 44
            characters.

            * An `example_` database prefix allows MariaDB usernames of up to 39
            characters.
          in: query
          name: newname
          required: true
          schema:
            example: mynewusername
            type: string
        - description: The user's current name.
          in: query
          name: oldname
          required: true
          schema:
            example: dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rename_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update MySQL username
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              rename_user \
              oldname='dbuser' \
              newname='mynewusername'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/rename_user?oldname=dbuser&newname=mynewusername
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_rename_user.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_rename_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/rename_user/,
                {
                    'oldname' => 'dbuser',
                    'newname' => 'mynewusername',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_rename_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_rename_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'rename_user',
                array (
                    'oldname' => 'dbuser',
                    'newname' => 'mynewusername',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/repair_database:
    get:
      description: >-
        This function repairs all of the tables in a MySQL® database.


        **Important:**


        When you disable the [MySQL/MariaDB
        role](https://go.cpanel.net/serverroles)

        **and** remote MySQL is **not** already configured, the system
        **disables** this function.
      operationId: repair_database
      parameters:
        - description: The database's name.
          in: query
          name: name
          required: true
          schema:
            example: example_db
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: repair_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing a response message for
                          each of a database's table in sequence.
                        items:
                          properties:
                            msg_text:
                              description: The message's contents.
                              example: OK
                              type: string
                            msg_type:
                              description: >-
                                The type of message.


                                * `status`

                                * `error`

                                * `info`

                                * `note`

                                * `warning`


                                **Note:**


                                For more information, read [MySQL's REPAIR
                                TABLE](http://dev.mysql.com/doc/refman/5.7/en/repair-table.html)
                                documentation.
                              enum:
                                - status
                                - error
                                - info
                                - note
                                - warning
                              example: status
                              type: string
                            table:
                              description: The table's name in the database.
                              example: table1
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Repair MySQL database tables
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              repair_database \
              name='example_db'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/repair_database?name=example_db
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_repair_database.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_repair_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/repair_database/,
                {
                    'name' => 'example_db',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_repair_database.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_repair_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'repair_database',
                array (
                    'name' => 'example_db',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Mysql/revoke_access_to_database:
    get:
      description: >-
        This function revokes a MySQL® database user's privileges.


        **Important:**


        When you disable the [MySQL role](https://go.cpanel.net/serverroles)
        **and**

        remote MySQL is **not** already configured, the system **disables** this
        function.
      operationId: revoke_access_to_database
      parameters:
        - description: The database's name.
          in: query
          name: database
          required: true
          schema:
            example: mydb
            type: string
        - description: >-
            The database user's name.


            **Important:**


            If database prefixing is enabled, you **must** prefix this value
            with the account

            prefix and an underscore (`_`).


            For example, for the `dbuser` user on the `user` cPanel account,
            pass in a value

            of `user_dbuser`. 
          in: query
          name: user
          required: true
          schema:
            example: dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: revoke_access_to_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: |-
                          List of warnings generated by the API.
                          Warnings describe non-critical failures or
                           other problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove MySQL user privileges
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              revoke_access_to_database \
              user='dbuser' \
              database='mydb'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/revoke_access_to_database?user=dbuser&database=mydb
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_revoke_access_to_database.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_revoke_access_to_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/revoke_access_to_database/,
                {
                    'user' => 'dbuser',
                    'database' => 'mydb',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_revoke_access_to_database.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_revoke_access_to_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'revoke_access_to_database',
                array (
                    'user' => 'dbuser',
                    'database' => 'mydb',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/set_password:
    get:
      description: |-
        This function sets a MySQL® database user's password.

        **Important:**

        When you disable the [MySQL role](https://go.cpanel.net/serverroles)
         and remote MySQL is **not** already configured,
         the system **disables** this function.
      operationId: Mysql-set_password
      parameters:
        - description: The user's new password.
          in: query
          name: password
          required: true
          schema:
            example: 12345luggage
            type: string
        - description: The MySQL database user.
          in: query
          name: user
          required: true
          schema:
            example: dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          failures:
                            description: An array of the function's error messages.
                            items:
                              properties:
                                error:
                                  description: The error message.
                                  type: string
                                host:
                                  description: The hostname that reported the error.
                                  format: domain
                                  type: string
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API.

                          Warnings describe non-critical failures or other
                          problematic conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update MySQL user password
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              set_password \
              user='dbuser' \
              password='12345luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/set_password?user=dbuser&password=12345luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_set_password.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_set_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/set_password/,
                {
                    'user' => 'dbuser',
                    'password' => '12345luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_set_password.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_set_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'set_password',
                array (
                    'user' => 'dbuser',
                    'password' => '12345luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/set_privileges_on_database:
    get:
      description: >-
        This function sets a MySQL® database user's privileges.


        **Important:**


        When you disable the [*MySQL/MariaDB*
        role](https://go.cpanel.net/serverroles), **and** remote MySQL is
        **not** already configured, the system **disables** this function.
      operationId: set_privileges_on_database
      parameters:
        - description: >-
            The database's name.


            **Important:**


            If database prefixing is enabled, you **must** prefix this value
            with the account prefix and an underscore (`_`). For example, for
            the `db` database on the `user` cPanel account, pass in a value of
            `user_db`.
          in: query
          name: database
          required: true
          schema:
            example: cpuser_dbname
            type: string
        - description: >-
            The database user's name.


            **Important:**


            If database prefixing is enabled, you **must** prefix this value
            with the account prefix and an underscore (`_`). For example, for
            the `dbuser` user on the `user` cPanel account, pass in a value of
            `user_dbuser`.
          in: query
          name: user
          required: true
          schema:
            example: cpuser_dbuser
            type: string
        - description: >-
            * `ALL PRIVILEGES`

            * A comma-separated list of one or more of the following individual
            privileges:
              * `ALTER`
              * `ALTER ROUTINE`
              * `CREATE`
              * `CREATE ROUTINE`
              * `CREATE TEMPORARY TABLES`
              * `CREATE VIEW`
              * `DELETE`
              * `DROP`
              * `EVENT`
              * `EXECUTE`
              * `INDEX`
              * `INSERT`
              * `LOCK TABLES`
              * `REFERENCES`
              * `SELECT`
              * `SHOW VIEW`
              * `TRIGGER`
              * `UPDATE`

            **Note:**


            * This list replaces, rather than adds to, the existing privilege
            list.

            * In browser-based and command line calls, separate multiple values
            with `%2C` and replace spaces with `%20`.
          in: query
          name: privileges
          required: false
          schema:
            example: DELETE,UPDATE,CREATE,ALTER
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_privileges_on_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update MySQL user privileges
      tags:
        - Mysql
        - User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              set_privileges_on_database \
              user='cpuser_dbuser' \
              database='cpuser_dbname'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/set_privileges_on_database?user=cpuser_dbuser&database=cpuser_dbname
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_set_privileges_on_database.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_set_privileges_on_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/set_privileges_on_database/,
                {
                    'user' => 'cpuser_dbuser',
                    'database' => 'cpuser_dbname',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_set_privileges_on_database.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_set_privileges_on_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'set_privileges_on_database',
                array (
                    'user' => 'cpuser_dbuser',
                    'database' => 'cpuser_dbname',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.44
  /Mysql/setup_db_and_user:
    get:
      description: >-
        This function creates a randomly named MySQL® database and user. This
        allows a 3rdparty tool to create its own DB without needing any
        knowledge of cPanel internals such as quotas or other limits. These will
        simply be passed back as an error.


        **Important:**

          When you disable the [MySQL/MariaDB role](https://go.cpanel.net/howtouseserverprofiles#roles) **and** remote MySQL is **not** already configured, the system **disables** this function.
      operationId: setup_db_and_user
      parameters:
        - description: >-
            An optional string to prepend to the randomly generated database
            name. This is in addition to the cPanel user which will appear prior
            to this. The prefix should be 6 characters or less and be only
            alphanumeric characters. WARNING: longer prexies lead to less
            entropy in the random username. Keep it short if you can!
          in: query
          name: prefix
          required: false
          schema:
            example: wp
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: setup_db_and_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          database:
                            description: >-
                              The randomized name of the database created. This
                              is normally prefixed with the account username and
                              can also be prefixed with application prefix.
                            oneOf:
                              - example: >-
                                  cpuser_wp_gwl7vpix28owo855yjomc7rsghkbjv0d0kf45kcvzip9tyxw9kdd
                                format: database name
                                type: string
                              - example: >-
                                  cpuser_ljiupjkhrn6zs20c9glnms0xor8sx48fm4noohri07xdruj31q
                                format: database name
                                type: string
                          database_user:
                            description: >-
                              The randomized username assigned to the database.
                              This is normally prefixed with the account
                              username and can also be prefixed with application
                              prefix.
                            oneOf:
                              - example: cpuser_wp_dji1jdt7nhjiwjcjju45
                                format: database username
                                type: string
                              - example: cpuser_dji1jdt7nhjiwjcjju45asd
                                format: database username
                                type: string
                          database_user_password:
                            description: >-
                              A randomly generated password intended to be
                              maximally randomized.
                            example: ;1t/U:wnFkCRL9q68]/+<TX=.C#7]n
                            format: password
                            type: string
                          hostname:
                            description: >-
                              The hostname to connect to from within the server
                              to connect to the MySQL server
                            oneOf:
                              - example: localhost
                                format: hostname
                                type: string
                              - example: mysql.remote.server.tld
                                format: hostname
                                type: string
                          port:
                            description: >-
                              The port to connect to from within the server to
                              connect to the MySQL server
                            example: 3306
                            format: unix-port
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create a randomly named MySQL username/database set.
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              setup_db_and_user \
              prefix='wp'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/setup_db_and_user?prefix=wp
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_setup_db_and_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_setup_db_and_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/setup_db_and_user/,
                {
                    'prefix' => 'wp',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_setup_db_and_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_setup_db_and_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'setup_db_and_user',
                array (
                    'prefix' => 'wp',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.116
  /Mysql/update_privileges:
    get:
      description: >-
        This function updates privileges for all MySQL® databases and users on
        an account.


        **Important:**


        When you disable the [MySQL/MariaDB
        role](https://go.cpanel.net/serverroles) **and**

        remote MySQL is **not** configured, the system **disables** this
        function.
      operationId: Mysql-update_privileges
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update_privileges
                    type: string
                  module:
                    description: The name of the module called.
                    example: Mysql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update MySQL® privileges
      tags:
        - Mysql
        - Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Mysql \
              update_privileges
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Mysql/update_privileges
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Mysql_update_privileges.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Mysql_update_privileges.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Mysql/,
                q/update_privileges/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Mysql_update_privileges.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Mysql_update_privileges.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Mysql',
                'update_privileges'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
      x-cpanel-internal-only: false
  /NginxCaching/clear_cache:
    get:
      description: |-
        This function clears the user's NGINX cache.

        **Note:**

          - You can **only** use this function if you installed the `ea-nginx` package.
      operationId: clear_cache
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: clear_cache
                    type: string
                  module:
                    description: The name of the module called.
                    example: NginxCaching
                    type: string
                  result:
                    properties:
                      data:
                        properties: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete NGINX cache contents.
      tags:
        - NginxCaching
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              NginxCaching \
              clear_cache
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/NginxCaching/clear_cache
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file NginxCaching_clear_cache.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/NginxCaching_clear_cache.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/NginxCaching/,
                q/clear_cache/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file NginxCaching_clear_cache.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/NginxCaching_clear_cache.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'NginxCaching',
                'clear_cache'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 100
  /NginxCaching/disable_cache:
    get:
      description: |-
        This function disables the user's NGINX cache.

        **Note:**

          - You can **only** use this function if you installed the `ea-nginx` package.
      operationId: disable_cache
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_cache
                    type: string
                  module:
                    description: The name of the module called.
                    example: NginxCaching
                    type: string
                  result:
                    properties:
                      data:
                        properties: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable the user's NGINX cache
      tags:
        - NginxCaching
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              NginxCaching \
              disable_cache
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/NginxCaching/disable_cache
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file NginxCaching_disable_cache.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/NginxCaching_disable_cache.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/NginxCaching/,
                q/disable_cache/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file NginxCaching_disable_cache.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/NginxCaching_disable_cache.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'NginxCaching',
                'disable_cache'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 100
  /NginxCaching/enable_cache:
    get:
      description: |-
        This function enables the user's NGINX cache.

        **Note:**

          - You can **only** use this function if you installed the `ea-nginx` package.
      operationId: enable_cache
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_cache
                    type: string
                  module:
                    description: The name of the module called.
                    example: NginxCaching
                    type: string
                  result:
                    properties:
                      data:
                        properties: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable the user's NGINX cache
      tags:
        - NginxCaching
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              NginxCaching \
              enable_cache
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/NginxCaching/enable_cache
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file NginxCaching_enable_cache.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/NginxCaching_enable_cache.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/NginxCaching/,
                q/enable_cache/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file NginxCaching_enable_cache.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/NginxCaching_enable_cache.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'NginxCaching',
                'enable_cache'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 100
  /NginxCaching/reset_cache_config:
    get:
      description: |-
        This function resets the user's NGINX caching configuration.

        **Note:**

          - You can **only** use this function if you installed the `ea-nginx` package.
      operationId: reset_cache_config
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: reset_cache_config
                    type: string
                  module:
                    description: The name of the module called.
                    example: NginxCaching
                    type: string
                  result:
                    properties:
                      data:
                        properties: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Reset the user's NGINX cache configuration
      tags:
        - NginxCaching
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              NginxCaching \
              reset_cache_config
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/NginxCaching/reset_cache_config
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file NginxCaching_reset_cache_config.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/NginxCaching_reset_cache_config.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/NginxCaching/,
                q/reset_cache_config/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file NginxCaching_reset_cache_config.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/NginxCaching_reset_cache_config.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'NginxCaching',
                'reset_cache_config'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 100
  /Notifications/get_notifications_count:
    get:
      description: >-
        This function returns the number of server-wide notifications on an
        account.
      operationId: get_notifications_count
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_notifications_count
                    type: string
                  module:
                    description: The name of the module called.
                    example: Notifications
                    type: string
                  result:
                    properties:
                      data:
                        description: The number of server-wide notifications.
                        example: 3
                        minimum: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return server notifications total
      tags:
        - Notifications
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Notifications \
              get_notifications_count
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Notifications/get_notifications_count
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Notifications_get_notifications_count.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Notifications_get_notifications_count.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Notifications/,
                q/get_notifications_count/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Notifications_get_notifications_count.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Notifications_get_notifications_count.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Notifications',
                'get_notifications_count'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Parser/firstfile_relative_uri:
    get:
      description: >-
        This function reports the first file's URI, relative to the cPanel base
        directory.
      operationId: firstfile_relative_uri
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: firstfile_relative_uri
                    type: string
                  module:
                    description: The name of the module called.
                    example: Parser
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          uri:
                            description: The file's absolute file path.
                            example: /usr/local/cpanel/base/favicon.ico
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return session relative URI
      tags:
        - Parser
        - URL Parsing
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Parser \
              firstfile_relative_uri
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Parser/firstfile_relative_uri
        - label: LiveAPI Perl
          lang: Perl
          source: "#--------------------------------------------------------------------------------------\n# Instructions:\n#--------------------------------------------------------------------------------------\n# <theme-name> is the theme assigned to cPanel account.\n# 1) cd /usr/local/cpanel/base/frontend/<theme-name>\t  \n# 2) mkdir api_examples\n# 3) cd api_examples\n# 4) create a file Parser_firstfile_relative_uri.live.pl and put this code into that file.\n# 5) In your browser login to a cPanel account.\n# 6) Manually change the url from: .../frontend/<theme-name>/\n#    to .../frontend/<theme-name>/api_examples/Parser_firstfile_relative_uri.live.pl\n#--------------------------------------------------------------------------------------\n\nuse strict;\n\nuse Cpanel::LiveAPI ();\n\nmy $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.\n\n# Print the header\nprint \"Content-type: text/plain\\r\\n\\r\\n\";\n\n# Call the API\nmy $response = $cpanel->uapi(\n    q/Parser/,\n    q/firstfile_relative_uri/\n);\n\n# Handle the response\nif ($response->{cpanelresult}{result}{status}) {\n    my $data = $response->{cpanelresult}{result}{data};\n    # Do something with the $data\n    # So you can see the data shape we print it here.\n    print to_json($data);\n}\nelse {\n    # Report errors:\n    print to_json($response->{cpanelresult}{result}{errors});\n}\n\n# Disconnect from cPanel - only do this once.\n$cpanel->end();\n\n#--------------------------------------------------------------------------------------\n# Helper function to convert a perl object to html printable json\n#--------------------------------------------------------------------------------------\nsub to_json {\n    require JSON;\n    my $str = JSON->new->pretty->encode($_[0]);\n    return $str;\n}\n"
        - label: LiveAPI PHP
          lang: PHP
          source: "<?php\n//--------------------------------------------------------------------------------------\n// Instructions:\n//--------------------------------------------------------------------------------------\n// <theme-name> is the theme assigned to cPanel account.\n// 1) cd /usr/local/cpanel/base/frontend/<theme-name>\t  \n// 2) mkdir api_examples\n// 3) cd api_examples\n// 4) create a file Parser_firstfile_relative_uri.live.php and put this code into that file.\n// 5) In your browser login to a cPanel account.\n// 6) Manually change the url from: .../frontend/<theme-name>/\n//    to .../frontend/<theme-name>/api_examples/Parser_firstfile_relative_uri.live.php\n//--------------------------------------------------------------------------------------\n\n// Instantiate the CPANEL object.\nrequire_once \"/usr/local/cpanel/php/cpanel.php\";\n\n// Print the header\nheader('Content-Type: text/plain');\n\n// Connect to cPanel - only do this once.\n$cpanel = new CPANEL();\n\n// Call the API\n$response = $cpanel->uapi(\n    'Parser',\n    'firstfile_relative_uri'\n);\n\n// Handle the response\nif ($response['cpanelresult']['result']['status']) {\n    $data = $response['cpanelresult']['result']['data'];\n    // Do something with the $data\n    // So you can see the data shape we print it here.\n    print to_json($data);\n}\nelse {\n    // Report errors:\n    print to_json($response['cpanelresult']['result']['errors']);\n}\n\n// Disconnect from cPanel - only do this once.\n$cpanel->end();\n\n//--------------------------------------------------------------------------------------\n// Helper function to convert a PHP value to html printable json\n//--------------------------------------------------------------------------------------\nfunction to_json($data) {\n    return json_encode($data, JSON_PRETTY_PRINT);\n}"
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /PassengerApps/disable_application:
    get:
      description: |-
        This function disables a Passenger application on an account.

        **Important:**

          When you disable the [Web Server role](https://go.cpanel.net/serverroles#roles), the system **disables** this function.
      operationId: disable_application
      parameters:
        - description: The application to disable.
          in: query
          name: name
          required: true
          schema:
            example: slippers
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_application
                    type: string
                  module:
                    description: The name of the module called.
                    example: PassengerApps
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Disable Passenger application
      tags:
        - PassengerApps
        - Application Manager
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PassengerApps \
              disable_application \
              name='slippers'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PassengerApps/disable_application?name=slippers
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PassengerApps_disable_application.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/PassengerApps_disable_application.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PassengerApps/,
                q/disable_application/,
                {
                    'name' => 'slippers',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PassengerApps_disable_application.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/PassengerApps_disable_application.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PassengerApps',
                'disable_application',
                array (
                    'name' => 'slippers',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /PassengerApps/edit_application:
    get:
      description: |-
        This function edits a Passenger application for an account.

        **Note**:

          When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: edit_application
      parameters:
        - description: The application’s current name.
          in: query
          name: name
          required: true
          schema:
            example: Ruby Slippers
            type: string
        - description: Whether to clear the application’s environment variables.
          in: query
          name: clear_envvars
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The new server environment in which to run the application. If you
            do not use this parameter, the function does not change the
            application’s server environment.

              * `development` — Sets the application to run in a development environment.
              * `production` — Sets the application to run in a production environment.
          in: query
          name: deployment_mode
          required: false
          schema:
            enum:
              - production
              - development
            example: production
            type: string
        - description: >-
            The application’s new domain. If you do not use this parameter, the
            function does not change the application’s domain.
          in: query
          name: domain
          required: false
          schema:
            example: toto.com
            format: domain
            type: string
        - description: >-
            Whether to enable the application and generate the web server
            configuration for it.

              * `1` — Enable the application and generate the web server configuration.
              * `0` — Don’t enable the application and generate the web server configuration.
          in: query
          name: enabled
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            New set of environment variables for the application.

            **Important**:

             The function replaces all current environment variables with the variables that you pass in this parameter.

            **Note**:

              For each `envvar_name` parameter you send you **must** include an `envvar_value` parameter.
          explode: true
          in: query
          name: envvar_name
          required: false
          schema:
            example:
              - SCARECROW
              - TINMAN
              - LION
            items:
              type: string
            type: array
          style: form
        - description: |-
            Each environment variable’s value.

            **Note**:

              For each `envvar_name` parameter you send you **must** include an `envvar_value` parameter.
          in: query
          name: envvar_value
          required: false
          schema:
            example:
              - brain
              - heart
              - courage
            items:
              type: string
            maxLength: 1024
            minLength: 1
            type: array
          style: form
        - description: >-
            The application’s new name. If you do not use this parameter, the
            function does not change the application's name.
          in: query
          name: new_name
          required: false
          schema:
            example: Little Dog
            type: string
        - description: >-
            The application’s new filepath. If you do not use this parameter,
            the function does not change the application’s filepath.
          in: query
          name: path
          required: false
          schema:
            example: /home/dorothy/littledog
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              example:
                data:
                  Little Dog:
                    base_uri: /littledog
                    deployment_mode: production
                    domain: toto.com
                    enabled: 1
                    envvars:
                      LION: courage
                      SCARECROW: brain
                      TINMAN: heart
                    name: Little Dog
                    path: /home/dorothy/littledog
                errors: null
                messages: null
                metadata: {}
                status: 1
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: edit_application
                    type: string
                  module:
                    description: The name of the module called.
                    example: PassengerApps
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: >-
                            An object describing the newly-edited application.


                            **Note**: `application_name` is the `name` of the
                            application.
                          maxProperties: 1
                          properties:
                            base_uri:
                              description: The URI of the application.
                              format: url-path
                              type: string
                            deployment_mode:
                              description: The deployment mode of the application.
                              enum:
                                - production
                                - development
                              type: string
                            domain:
                              description: The domain of the application.
                              format: domain
                              type: string
                            enabled:
                              description: |-
                                Whether the application is enabled or not.

                                  * `1` — Enabled.
                                  * `0` — Disabled.
                              enum:
                                - 1
                                - 0
                              type: integer
                            envvars:
                              description: >-
                                An object of the application’s environment
                                variables and their values.
                              type: object
                            name:
                              description: The name of the application.
                              type: string
                            path:
                              description: >-
                                The path of the application inside the user’s
                                home directory.
                              format: path
                              type: string
                          type: object
                          x-additionalPropertiesName: application_name
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update Passenger application settings
      tags:
        - PassengerApps
        - Application Manager
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PassengerApps \
              edit_application \
              name='Ruby Slippers'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PassengerApps/edit_application?name=Ruby%20Slippers
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PassengerApps_edit_application.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/PassengerApps_edit_application.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PassengerApps/,
                q/edit_application/,
                {
                    'name' => 'Ruby Slippers',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PassengerApps_edit_application.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/PassengerApps_edit_application.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PassengerApps',
                'edit_application',
                array (
                    'name' => 'Ruby Slippers',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /PassengerApps/enable_application:
    get:
      description: >-
        This function enables a Passenger application and generates the Apache
        configuration on an account.


        **Important:**


        When you disable the [Web Server
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function. 
      operationId: enable_application
      parameters:
        - description: The Passenger application to enable on the account.
          in: query
          name: name
          required: true
          schema:
            example: slippers
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_application
                    type: string
                  module:
                    description: The name of the module called.
                    example: PassengerApps
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable Passenger application
      tags:
        - PassengerApps
        - Application Manager
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PassengerApps \
              enable_application \
              name='slippers'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PassengerApps/enable_application?name=slippers
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PassengerApps_enable_application.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/PassengerApps_enable_application.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PassengerApps/,
                q/enable_application/,
                {
                    'name' => 'slippers',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PassengerApps_enable_application.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/PassengerApps_enable_application.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PassengerApps',
                'enable_application',
                array (
                    'name' => 'slippers',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /PassengerApps/ensure_deps:
    get:
      description: |-
        This function installs the dependencies for a Passenger application.

        **Note**:

          This function starts the installation process. This may take a long time to complete.

        **Important**:

          When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: ensure_deps
      parameters:
        - description: The application’s filepath.
          in: query
          name: app_path
          required: true
          schema:
            example: /home/example/my-app/
            format: path
            type: string
        - description: >-
            The application’s type.


            * `gem` — Ensure ruby gems in the application’s `Gemfile` file.

            * `npm` — Ensure node packages in the application’s `package.json`
            file.

            * `pip` — Ensure python pips in the application’s `requirements.txt`
            file.
          in: query
          name: type
          required: true
          schema:
            enum:
              - gem
              - npm
              - pip
            example: npm
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: ensure_deps
                    type: string
                  module:
                    description: The name of the module called.
                    example: PassengerApps
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          sse_url:
                            description: The SSE URI to track the progress of the process.
                            example: >-
                              /sse/UserTasks/00000000_5c6c8b18228a35/ensure_deps.log
                            format: url-path
                            type: string
                          task_id:
                            description: The task id of the SSE process.
                            example: 00000000/5c76ec5566332c
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Install Passenger application dependencies
      tags:
        - PassengerApps
        - Application Manager
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PassengerApps \
              ensure_deps \
              type='npm' \
              app_path='/home/example/my-app/'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PassengerApps/ensure_deps?type=npm&app_path=%2fhome%2fexample%2fmy-app%2f
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PassengerApps_ensure_deps.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/PassengerApps_ensure_deps.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PassengerApps/,
                q/ensure_deps/,
                {
                    'type' => 'npm',
                    'app_path' => '/home/example/my-app/',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PassengerApps_ensure_deps.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/PassengerApps_ensure_deps.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PassengerApps',
                'ensure_deps',
                array (
                    'type' => 'npm',
                    'app_path' => '/home/example/my-app/',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /PassengerApps/list_applications:
    get:
      description: |-
        This function lists an account’s Passenger applications.

        **Important:**

          When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: list_applications
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_applications
                    type: string
                  module:
                    description: The name of the module called.
                    example: PassengerApps
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: >-
                            **Note**:


                            The top-level keys are the names of the
                            applications.


                            The value is the object defined here.
                          properties:
                            base_uri:
                              description: The URI of the application.
                              example: /uri-of-app
                              format: url-path
                              type: string
                            deployment_mode:
                              description: |-
                                The deployment mode of the application.

                                  * `development` — Sets the application to run in a development environment.
                                  * `production` — Sets the application to run in a production environment.
                              enum:
                                - production
                                - development
                              example: production
                              type: string
                            deps:
                              properties:
                                gem:
                                  description: >-
                                    The shell command to ensure ruby
                                    dependencies. It is `0` if there are no ruby
                                    dependencies.
                                  example: '0'
                                  type: string
                                npm:
                                  description: >-
                                    The shell command to ensure node
                                    dependencies. It is `0` if there are no node
                                    dependencies.
                                  example: '0'
                                  type: string
                                pip:
                                  description: >-
                                    The shell command to ensure python
                                    dependencies. It is `0` if there are no
                                    python dependencies.
                                  example: '0'
                                  type: string
                              type: object
                            domain:
                              description: The domain of the application
                              example: example.com
                              format: domain
                              type: string
                            enabled:
                              description: |-
                                The application’s enabled status.

                                * `1` — Enabled.
                                * `0` — Disabled.
                            envvars:
                              description: >-
                                The environment variables set for the
                                application.
                              nullable: true
                              type: object
                            name:
                              description: The name of the application
                              example: My Application
                              type: string
                            nodejs:
                              description: >-
                                The path of the Nodejs executable.

                                Passenger uses Nodejs to run the application.


                                **Note**:


                                The function only returns this value if you
                                configure this application to use

                                Nodejs.
                              example: /opt/cpanel/ea-nodejs10/bin/node
                              format: path
                              type: string
                            path:
                              description: The path of the application
                              example: /home/user/app-path
                              format: path
                              type: string
                            python:
                              description: >-
                                The path of the Python executable.

                                Passenger uses Python to run the application.


                                **Note**:


                                The function only returns this value if you
                                configure this application to use

                                Python.
                              example: /usr/bin/python
                              format: path
                              type: string
                            ruby:
                              description: >-
                                The path of the Ruby executable.

                                Passenger uses Ruby to run the application.


                                **Note**:


                                The function only returns this value if you
                                configure this application to use

                                Ruby.
                              example: >-
                                /opt/cpanel/ea-ruby27/root/usr/libexec/passenger-ruby27
                              format: path
                              type: string
                          type: object
                        description: An object describing each application.
                        example:
                          Name of Application 1:
                            base_uri: /app1-uri
                            deployment_mode: production
                            deps:
                              gem: '0'
                              npm: '0'
                              pip: >-
                                cd /home/user/app1-dir && pip install --user -r
                                requirements.txt
                            domain: example.com
                            enabled: 1
                            envvars: {}
                            name: Name of Application 1
                            path: /home/user/app1-dir
                          Name of Application 2:
                            base_uri: /app2-uri
                            deployment_mode: development
                            deps:
                              gem: >-
                                cd /home/user/app2-dir && BUNDLE_PATH=~/.gem
                                /path/to/ruby/version/package/bundler install
                              npm: '0'
                              pip: '0'
                            domain: example.com
                            enabled: 1
                            envvars: {}
                            name: Name of Application 2
                            path: /home/user/app2-dir
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Passenger applications
      tags:
        - PassengerApps
        - Application Manager
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PassengerApps \
              list_applications
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PassengerApps/list_applications
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PassengerApps_list_applications.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/PassengerApps_list_applications.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PassengerApps/,
                q/list_applications/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PassengerApps_list_applications.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/PassengerApps_list_applications.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PassengerApps',
                'list_applications'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /PassengerApps/register_application:
    get:
      description: |-
        This function registers a Passenger application for an account.

        **Important**:

          * This function **only** registers an application. It does **not** create the application. You **must** create an application **before** you register the application. For an example of how to do this, read our [How to Create Ruby Web Applications](https://go.cpanel.net/howtocreaterubyapps) documentation.
          * When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: register_application
      parameters:
        - description: The domain for which to register the application.
          in: query
          name: domain
          required: true
          schema:
            example: dorothy.com
            format: domain
            type: string
        - description: The application’s name.
          in: query
          name: name
          required: true
          schema:
            example: Name of Application
            maxLength: 50
            minLength: 1
            type: string
        - description: The application’s filepath relative to the user’s home directory.
          in: query
          name: path
          required: true
          schema:
            example: /slippers
            format: path
            type: string
        - description: The application’s base URI.
          in: query
          name: base_uri
          required: false
          schema:
            default: /
            example: /ruby
            format: url-path
            type: string
        - description: |-
            The type of server environment in which to run the application.

              * `development` — Sets the application to run in a development environment.
              * `production` — Sets the application to run in a production environment.
          in: query
          name: deployment_mode
          required: false
          schema:
            default: production
            enum:
              - production
              - development
            example: production
            type: string
        - description: >-
            Whether to enable the application and generate the web server
            configuration for it.

              * `1` — Enable the application and generate the web server configuration.
              * `0` — Don’t enable the application and generate the web server configuration.
          in: query
          name: enabled
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: "Environment variables that the application needs.\n\n**Note**:\n\n  For each `envvar_name` parameter you\_send, you **must** include an `envvar_value` parameter.\n\n  This parameter's value can only contain letters, numbers, underscores, and dashes, and cannot begin with a number. This parameter's value must also not exceed 256 characters."
          explode: true
          in: query
          name: envvar_name
          required: false
          schema:
            example:
              - SHOES
              - TINMAN
            items:
              type: string
            maxLength: 256
            type: array
          style: form
        - description: "Each environment variable’s value.\n\n**Note**:\n\n  For each `envvar_name` parameter you\_send, you **must** include an `envvar_value` parameter.\n\n  An environment variable value must contain 1024 or fewer ASCII-printable characters."
          explode: true
          in: query
          name: envvar_value
          required: false
          schema:
            example:
              - ruby
              - heart
            items:
              type: string
            maxLength: 1024
            type: array
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: register_application
                    type: string
                  module:
                    description: The name of the module called.
                    example: PassengerApps
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: |-
                            The application’s configuration information.

                              **Note**:

                              The top-level key is the name of the application.

                              The value is the object defined here.
                          properties:
                            base_uri:
                              description: The URI of the application.
                              format: url-path
                              type: string
                            deployment_mode:
                              description: |-
                                The deployment mode of the application.

                                  * `development` — Sets the application to run in a development environment.
                                  * `production` — Sets the application to run in a production environment.
                              enum:
                                - production
                                - development
                              type: string
                            domain:
                              description: The domain of the application.
                              type: string
                            enabled:
                              description: "Whether the application is enabled or not.\n\n  * `1` —\_Enabled.\n  * `0` — Disabled."
                              enum:
                                - 1
                                - 0
                              type: integer
                            envvars:
                              description: >-
                                An object of the application’s environment
                                variables and their values.
                              type: object
                            name:
                              description: The name of the application.
                              type: string
                            path:
                              description: >-
                                The path of the application inside the user’s
                                home directory.
                              format: path
                              type: string
                        description: An object describing the newly-registered application.
                        example:
                          Name of Application:
                            base_uri: /ruby
                            deployment_mode: production
                            domain: dorothy.com
                            enabled: 1
                            envvars:
                              SHOES: ruby
                              TINMAN: heart
                            name: Name of Application
                            path: /home/dorothy/slippers
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Register Passenger application
      tags:
        - PassengerApps
        - Application Manager
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PassengerApps \
              register_application \
              name='Name of Application' \
              path='/slippers' \
              domain='dorothy.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PassengerApps/register_application?name=Name%20of%20Application&path=%2fslippers&domain=dorothy.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PassengerApps_register_application.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/PassengerApps_register_application.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PassengerApps/,
                q/register_application/,
                {
                    'name' => 'Name of Application',
                    'path' => '/slippers',
                    'domain' => 'dorothy.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PassengerApps_register_application.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/PassengerApps_register_application.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PassengerApps',
                'register_application',
                array (
                    'name' => 'Name of Application',
                    'path' => '/slippers',
                    'domain' => 'dorothy.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /PassengerApps/unregister_application:
    get:
      description: >-
        This function unregisters a [Passenger
        application](https://go.cpanel.net/cpaneldocsApplicationManager) on an
        account.


        **Note:**

          * This function **only** unregisters an application. It does **not** delete the application. You **must** manually delete the application from your system.
          * When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: unregister_application
      parameters:
        - description: The application to unregister.
          in: query
          name: name
          required: true
          schema:
            example: slippers
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unregister_application
                    type: string
                  module:
                    description: The name of the module called.
                    example: PassengerApps
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Unregister Passenger application
      tags:
        - PassengerApps
        - Application Manager
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PassengerApps \
              unregister_application \
              name='slippers'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PassengerApps/unregister_application?name=slippers
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PassengerApps_unregister_application.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/PassengerApps_unregister_application.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PassengerApps/,
                q/unregister_application/,
                {
                    'name' => 'slippers',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PassengerApps_unregister_application.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/PassengerApps_unregister_application.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PassengerApps',
                'unregister_application',
                array (
                    'name' => 'slippers',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /PasswdStrength/get_required_strength:
    get:
      description: >-
        This function retrieves an application's minimum required password
        strength.
      operationId: get_required_strength
      parameters:
        - description: The application's name.
          in: query
          name: app
          required: true
          schema:
            enum:
              - cpaddons
              - createacct
              - ftp
              - htaccess
              - mysql
              - passwd
              - pop
              - postgres
              - sshkey
              - webdisk
              - virtual
            example: webdisk
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_required_strength
                    type: string
                  module:
                    description: The name of the module called.
                    example: PasswdStrength
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          strength:
                            description: The application's minimum password strength.
                            example: 0
                            maximum: 100
                            minimum: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return minimum required password strength
      tags:
        - PasswdStrength
        - Password Strength
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              PasswdStrength \
              get_required_strength \
              app='webdisk'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/PasswdStrength/get_required_strength?app=webdisk
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file PasswdStrength_get_required_strength.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/PasswdStrength_get_required_strength.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/PasswdStrength/,
                q/get_required_strength/,
                {
                    'app' => 'webdisk',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file PasswdStrength_get_required_strength.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/PasswdStrength_get_required_strength.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'PasswdStrength',
                'get_required_strength',
                array (
                    'app' => 'webdisk',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Personalization/get:
    post:
      description: "This function retrieves the data from an NVData file on disk.\_cPanel\nNVData is a per-account configuration storage mechanism that you can use to\nmaintain persistent cPanel & WHM settings across multiple sessions. This includes\ncustom settings for your own themes and plugins.\n\n**Note:**\n\nNVData keys and values are limited to 128 and 2048 bytes, respectively."
      operationId: Personalization::get
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              example:
                names:
                  - coffee
                  - milk
              properties:
                names:
                  description: List of NVData keys to query the server about.
                  items:
                    type: string
                  type: array
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get
                    type: string
                  module:
                    description: The name of the module called.
                    example: Personalization
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          coffee:
                            reason: OK
                            success: 1
                            value: hot
                          milk:
                            reason: OK
                            success: 1
                            value: cold
                        properties:
                          personalization:
                            additionalProperties:
                              properties:
                                reason:
                                  description: >-
                                    The message that describes the failure if
                                    `success` returns `0`, or `OK` if `success`
                                    returns `1`.
                                  example: OK
                                  type: string
                                success:
                                  description: >-
                                    Whether the function successfully retrieved
                                    the value from the server.
                                      - `1` — Successful.
                                      - `0` — Unsuccessful.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                value:
                                  description: >-
                                    The value stored for the associated NVData
                                    key, or a null value if the key does not
                                    exist in the store.
                                  nullable: true
                                  type: string
                              type: object
                            description: >-
                              The retrieved NVData information stored on the
                              server.


                              **Note:**


                              * You set this return's name based on the keys
                              that you provide in the `personalization`
                              parameter with the UAPI `Personalization::set`
                              function.

                              * This return's name is the NVData key's name.
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success

                          - `0` — Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Retrieve NVData data from file
      tags:
        - Personalization
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |-
            echo '{"names":["coffee","milk"]}' | \
            uapi --input=json --output=jsonpretty \
              --user=username \
              Personalization \
              get
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: |-
            POST /cpsess##########/execute/Personalization/get HTTP/1.1
            Host: example.com:2083
            Cookie: ###################################
            Content-Type: application/json
            Content-Length: 27

            {"names":["coffee","milk"]}
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /Personalization/set:
    post:
      description: "This function saves its data to an NVData file on disk.\_cPanel\nNVData is a per-account configuration storage mechanism that you can use to\nmaintain persistent cPanel & WHM settings across multiple sessions. This includes\ncustom settings for your own themes and plugins.\n\n**Note:**\n\nNVData keys and values are limited to 128 and 2048 bytes, respectively."
      operationId: Personalization-set
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              example:
                personalization:
                  coffee: hot
                  milk: cold
              properties:
                personalization:
                  additionalProperties:
                    type: string
                  description: The NVData keys and values to update.
                  type: object
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set
                    type: string
                  module:
                    description: The name of the module called.
                    example: Personalization
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          coffee:
                            reason: OK
                            success: 1
                            value: hot
                          milk:
                            reason: OK
                            success: 1
                            value: cold
                        properties:
                          personalization:
                            additionalProperties:
                              properties:
                                reason:
                                  description: >-
                                    The message that describes the failure if
                                    `success` returns `0`, or `OK` if `success`
                                    returns `1`.
                                  example: OK
                                  type: string
                                success:
                                  description: >-
                                    Whether the function successfully saved the
                                    value on the server.
                                      - `1` — Successful.
                                      - `0` — Unsuccessful.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                value:
                                  description: >-
                                    The value stored for the associated NVData
                                    key, or a null value if the key does not
                                    exist in the store.
                                  nullable: true
                                  type: string
                              type: object
                            description: >-
                              The saved NVData information stored on the server.


                              **Note:**


                              You set this return's name based on the keys that
                              you provide in the `personalization` parameter.
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success

                          - `0` — Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Save NVData data to file
      tags:
        - Personalization
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |-
            echo '{"personalization":{"coffee":"hot","milk":"cold"}}' | \
            uapi --input=json --output=jsonpretty \
              --user=username \
              Personalization \
              set
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: |-
            POST /cpsess##########/execute/Personalization/set HTTP/1.1
            Host: example.com:2083
            Cookie: ###################################
            Content-Type: application/json
            Content-Length: 50

            {"personalization":{"coffee":"hot","milk":"cold"}}
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /Plugins/can_show_promotions:
    get:
      description: This function determines if plugin promotions show in cPanel.
      operationId: Plugins-can_show_promotions
      parameters:
        - description: >-
            The plugin whose promotions to target.


            **Note:**


            The only valid value is 'koality', which targets Site Quality
            Monitoring.
          in: query
          name: plugin
          required: true
          schema:
            example: koality
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: can_show_promotions
                    type: string
                  module:
                    description: The name of the module called.
                    example: Plugins
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains information about the plugin's
                          promotions.
                        properties:
                          can_show_promotions:
                            description: |-
                              Whether the plugin can show promotions.
                              * `1` — Can show promotions.
                              * `0` — Can not show promotions.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable plugin promotions
      tags:
        - Plugins
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Plugins \
              can_show_promotions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Plugins/can_show_promotions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Plugins_can_show_promotions.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/Plugins_can_show_promotions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Plugins/,
                q/can_show_promotions/,
                {
                    'plugin' => 'koality',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Plugins_can_show_promotions.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/Plugins_can_show_promotions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Plugins',
                'can_show_promotions',
                {
                    'plugin' => 'koality',
                }
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: Plugins
  /Plugins/create_user:
    get:
      description: This function implements third-party user creation.
      operationId: Plugins-create_user
      parameters:
        - description: The parameters required for the third-party account.
          in: query
          name: Parameters
          schema:
            properties:
              plugin:
                description: The name of the plugin to create a user for.
                type: string
            required:
              - plugin
            additionalProperties:
              type: object
              nullable: true
              description: >-
                One or more additional parameters to pass through to the
                external API call.
              x-additionalPropertiesName: example_parameter
            example:
              plugin: xovi
            type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Plugins
                    type: string
                  result:
                    properties:
                      data:
                        description: The returned data from a third-party API call.
                        additionalProperties:
                          description: The returned values from a third-party API call.
                          type: string
                          x-additionalPropertiesName: apiToken
                          nullable: true
                        example:
                          apiToken: b06950548166672ca
                        type: object
                        nullable: true
                      errors:
                        description: List of errors that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create third-party user
      tags:
        - Plugins
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Plugins \
              create_user \
              plugin='xovi'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Plugins/create_user?plugin=xovi
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Plugins_create_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Plugins_create_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Plugins/,
                q/create_user/,
                {
                    'plugin' => 'xovi',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Plugins_create_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Plugins_create_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Plugins',
                'create_user',
                array (
                    'plugin' => 'xovi',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 118
      x-cpanel-plugin: Plugins
  /Postgresql/create_database:
    get:
      description: >-
        This function creates a PostgreSQL® database.


        **Important:**


        When you disable the [PostgreSQL
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function.
      operationId: Postgresql::create_database
      parameters:
        - description: |-
            The database's name.

            **Note**:

              If database prefixing is enabled, this parameter **must** include the database prefix for the account.
          in: query
          name: name
          required: true
          schema:
            example: database
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create PostgreSQL database
      tags:
        - Postgresql
        - PostgreSQL Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              create_database \
              name='database'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/create_database?name=database
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_create_database.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_create_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/create_database/,
                {
                    'name' => 'database',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_create_database.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_create_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'create_database',
                array (
                    'name' => 'database',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/create_user:
    get:
      description: >-
        This function creates a PostgreSQL® database user.


        **Important:**


        When you disable the [*PostgreSQL*
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: create_user
      parameters:
        - description: >-
            The database user's name.


            **Note:**


            If database prefixing is enabled, this parameter **must** include
            the database prefix for the account.
          in: query
          name: name
          required: true
          schema:
            example: dbuser
            type: string
        - description: The new user's password.
          in: query
          name: password
          required: true
          schema:
            example: 123456luggage
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create PostgreSQL user
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              create_user \
              name='dbuser' \
              password='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/create_user?name=dbuser&password=123456luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_create_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_create_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/create_user/,
                {
                    'name' => 'dbuser',
                    'password' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_create_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_create_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'create_user',
                array (
                    'name' => 'dbuser',
                    'password' => '123456luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/delete_database:
    get:
      description: |-
        This function deletes a PostgreSQL® database.

        **Important:**

          When you disable the [Postgres role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: Postgresql::delete_database
      parameters:
        - description: The database's name.
          in: query
          name: name
          required: true
          schema:
            example: database
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete PostgreSQL database
      tags:
        - Postgresql
        - PostgreSQL Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              delete_database \
              name='database'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/delete_database?name=database
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_delete_database.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_delete_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/delete_database/,
                {
                    'name' => 'database',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_delete_database.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_delete_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'delete_database',
                array (
                    'name' => 'database',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /Postgresql/delete_user:
    get:
      description: |-
        This function deletes a PostgreSQL® user.

        **Important:**

          When you disable the [PostgreSQL role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: Postgresql::delete_user
      parameters:
        - description: The PostgreSQL user's name.
          in: query
          name: name
          required: true
          schema:
            example: example
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          *`1` - Success.

                          *`0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete PostgreSQL user
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              delete_user \
              name='example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/delete_user?name=example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_delete_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_delete_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/delete_user/,
                {
                    'name' => 'example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_delete_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_delete_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'delete_user',
                array (
                    'name' => 'example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Postgresql/get_restrictions:
    get:
      description: >-
        This function retrieves the PostgreSQL® user and database name length
        restrictions.


        **Important:**


        When you disable the [*PostgreSQL*
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.      
      operationId: Postgresql::get_restrictions
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_restrictions
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          max_database_name_length:
                            description: The maximum length of a database name.
                            example: 63
                            minimum: 1
                            type: integer
                          max_username_length:
                            description: The maximum length of a database username.
                            example: 63
                            minimum: 1
                            type: integer
                          prefix:
                            description: >-
                              If database prefixing is enabled, this return
                              outputs the database prefix. A valid string up to
                              eight characters and an underscore (`_`).
                            example: example_
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return PostgreSQL name length restrictions
      tags:
        - Postgresql
        - PostgreSQL Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              get_restrictions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/get_restrictions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_get_restrictions.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_get_restrictions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/get_restrictions/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_get_restrictions.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_get_restrictions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'get_restrictions'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/grant_all_privileges:
    get:
      description: >-
        This function grants all privileges for a PostgreSQL® database to a
        database user.


        **Important:**


        When you disable the [*PostgreSQL*
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function.
      operationId: grant_all_privileges
      parameters:
        - description: >-
            The database's name.


            **Note**


            If database prefixing is enabled, this value **must** include the
            database prefix for the account.
          in: query
          name: database
          required: true
          schema:
            example: example_database
            type: string
        - description: >-
            The database user's name.


            **Note**


            If database prefixing is enabled, this value **must** include the
            database prefix for the account.
          in: query
          name: user
          required: true
          schema:
            example: example_dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: grant_all_privileges
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable all user privileges on PostgreSQL database
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              grant_all_privileges \
              user='example_dbuser' \
              database='example_database'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/grant_all_privileges?user=example_dbuser&database=example_database
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_grant_all_privileges.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_grant_all_privileges.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/grant_all_privileges/,
                {
                    'user' => 'example_dbuser',
                    'database' => 'example_database',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_grant_all_privileges.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_grant_all_privileges.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'grant_all_privileges',
                array (
                    'user' => 'example_dbuser',
                    'database' => 'example_database',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/list_databases:
    get:
      description: |-
        This function lists an account's PostgreSQL® databases.

        **Important:**

          When you disable the [*Postgres* role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: Postgresql-list_databases
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_databases
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            database:
                              description: The database name.
                              example: user_db
                              type: string
                            disk_usage:
                              description: The disk space that the database uses, in bytes.
                              example: 673
                              type: integer
                            users:
                              description: |-
                                An array of database usernames.

                                **Note:**

                                  If no users exist on a database, the function returns an empty array
                              items:
                                example: db_user
                                type: string
                              minimum: 0
                              type: array
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return PostgreSQL databases
      tags:
        - Postgresql
        - PostgreSQL Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              list_databases
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/list_databases
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_list_databases.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_list_databases.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/list_databases/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_list_databases.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_list_databases.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'list_databases'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Postgresql/list_users:
    get:
      description: >-
        This function lists an account's PostgreSQL® database users.


        **Important:**


        When you disable the [*PostgreSQL*
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: Postgresql::list_users
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_users
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of strings which are PostgreSQL database
                          usernames.
                        example:
                          - example_user1
                          - example_user2
                        items:
                          example: example_user1
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return PostgreSQL users
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              list_users
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/list_users
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_list_users.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_list_users.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/list_users/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_list_users.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_list_users.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'list_users'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Postgresql/rename_database:
    get:
      description: >-
        This function renames a PostgreSQL® database.


        **Important:**


        When you disable the [*PostgreSQL*
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: rename_database
      parameters:
        - description: >-
            The database's new name.


            **Note:**


            If database prefixing is enabled, this parameter **must** include
            the database prefix for the account.
          in: query
          name: newname
          required: true
          schema:
            example: database2
            type: string
        - description: >-
            The database's current name.


            **Note:**


            If database prefixing is enabled, this parameter **must** include
            the database prefix for the account.
          in: query
          name: oldname
          required: true
          schema:
            example: database
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rename_database
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update PostgreSQL database name
      tags:
        - Postgresql
        - PostgreSQL Database Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              rename_database \
              oldname='database' \
              newname='database2'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/rename_database?oldname=database&newname=database2
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_rename_database.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_rename_database.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/rename_database/,
                {
                    'oldname' => 'database',
                    'newname' => 'database2',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_rename_database.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_rename_database.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'rename_database',
                array (
                    'oldname' => 'database',
                    'newname' => 'database2',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/rename_user:
    get:
      description: >-
        This function renames a PostgreSQL® database user.


        **Important:**


        When you disable the [*PostgreSQL*
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: Postgresql::rename_user
      parameters:
        - description: >-
            The database user's new name.


            **Note:**


            If database prefixing is enabled, this parameter **must** include
            the database prefix for the account.
          in: query
          name: newname
          required: true
          schema:
            example: dbuser2
            type: string
        - description: >-
            The database user's current name.


            **Note:**


            If database prefixing is enabled, this parameter **must** include
            the database prefix for the account.
          in: query
          name: oldname
          required: true
          schema:
            example: dbuser
            type: string
        - description: The database user's new password.
          in: query
          name: password
          required: true
          schema:
            example: 123456luggage
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rename_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update PostgreSQL username
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              rename_user \
              oldname='dbuser' \
              newname='dbuser2' \
              password='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/rename_user?oldname=dbuser&newname=dbuser2&password=123456luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_rename_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_rename_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/rename_user/,
                {
                    'oldname' => 'dbuser',
                    'newname' => 'dbuser2',
                    'password' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_rename_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_rename_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'rename_user',
                array (
                    'oldname' => 'dbuser',
                    'newname' => 'dbuser2',
                    'password' => '123456luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/rename_user_no_password:
    get:
      description: >-
        This function renames a PostgreSQL® database user.


        **Warning:**


        * If you rename a PostgreSQL user, you **must** set the password for the
        database user. This is required because of the md5 hash that PostgreSQL
        creates to store user passwords.

        * We **strongly** recommend that you use the `Postgresql::rename_user
        function` instead of this one.


        **Important:**


        When you disable the  [*PostgreSQL*
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: rename_user_no_password
      parameters:
        - description: >-
            The database user's new name.


            **Note:**


            If database prefixing is enabled, this parameter **must** include
            the database prefix for the account.
          in: query
          name: newname
          required: true
          schema:
            example: dbuser2
            type: string
        - description: >-
            The database user's current name.


            **Note:**


            If database prefixing is enabled, this parameter **must** include
            the database prefix for the account.
          in: query
          name: oldname
          required: true
          schema:
            example: dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rename_user_no_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update PostgreSQL username without password
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              rename_user_no_password \
              oldname='dbuser' \
              newname='dbuser2'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/rename_user_no_password?oldname=dbuser&newname=dbuser2
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_rename_user_no_password.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_rename_user_no_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/rename_user_no_password/,
                {
                    'oldname' => 'dbuser',
                    'newname' => 'dbuser2',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_rename_user_no_password.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_rename_user_no_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'rename_user_no_password',
                array (
                    'oldname' => 'dbuser',
                    'newname' => 'dbuser2',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/revoke_all_privileges:
    get:
      description: >-
        This function revokes all privileges for a PostgreSQL® database from a
        database user.


        **Important:**


        When you disable the [*PostgreSQL*
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: revoke_all_privileges
      parameters:
        - description: >-
            The database's name.


            **Note**


            If database prefixing is enabled, this value **must** include the
            database prefix for the account.
          in: query
          name: database
          required: true
          schema:
            example: example_database
            type: string
        - description: >-
            The database user's name.


            **Note**


            If database prefixing is enabled, this value **must** include the
            database prefix for the account.
          in: query
          name: user
          required: true
          schema:
            example: example_dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: revoke_all_privileges
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove PostgreSQL user privileges
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              revoke_all_privileges \
              user='example_dbuser' \
              database='example_database'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/revoke_all_privileges?user=example_dbuser&database=example_database
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_revoke_all_privileges.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_revoke_all_privileges.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/revoke_all_privileges/,
                {
                    'user' => 'example_dbuser',
                    'database' => 'example_database',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_revoke_all_privileges.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_revoke_all_privileges.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'revoke_all_privileges',
                array (
                    'user' => 'example_dbuser',
                    'database' => 'example_database',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/set_password:
    get:
      description: |-
        This function changes a PostgreSQL® database user's password.

        **Important:**

          When you disable the [Postgres role](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: set_password
      parameters:
        - description: The user's new password.
          in: query
          name: password
          required: true
          schema:
            example: 12345luggage
            type: string
        - description: "The database user's\_name.\n\n**Note:**\n\nIf database prefixing is enabled, this parameter **must** include the database prefix for the account."
          in: query
          name: user
          required: true
          schema:
            example: dbuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update PostgreSQL user password
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              set_password \
              user='dbuser' \
              password='12345luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/set_password?user=dbuser&password=12345luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_set_password.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Postgresql_set_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/set_password/,
                {
                    'user' => 'dbuser',
                    'password' => '12345luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_set_password.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Postgresql_set_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'set_password',
                array (
                    'user' => 'dbuser',
                    'password' => '12345luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Postgresql/update_privileges:
    get:
      description: >-
        This function synchronizes PostgreSQL® database user privileges on an
        account.


        Some versions of PostgreSQL are ANSI SQL-92 compliant and do not support
        recursive grants,

        wildcard grants, or future grants. If you use phpPgAdmin, or manually
        create new tables, and

        you want multiple PostgreSQL users to access your PostgreSQL tables, you
        may either call this

        API function or click _Synchronize Grants_ in the _PostgreSQL Databases_
        interface

        (_Home >> Databases >> PostgreSQL Databases_) after you add a table.


        **Important:**


        When you disable the [PostgreSQL
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: Postgresql-update_privileges
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update_privileges
                    type: string
                  module:
                    description: The name of the module called.
                    example: Postgresql
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update PostgreSQL® privileges
      tags:
        - Postgresql
        - PostgreSQL User Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Postgresql \
              update_privileges
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Postgresql/update_privileges
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Postgresql_update_privileges.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Postgresql_update_privileges.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Postgresql/,
                q/update_privileges/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Postgresql_update_privileges.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Postgresql_update_privileges.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Postgresql',
                'update_privileges'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Pushbullet/send_test_message:
    get:
      description: >-
        This function sends a Pushbullet™ test message to determine that the
        token is valid and that the account holder can receive the message.
      operationId: send_test_message
      parameters:
        - description: >-
            The Pushbullet access token.


            **Note:**


            * Your Pushbullet token is available on

            [Pushbullet's My Account](https://www.pushbullet.com/account) page
            under

            the *Access Token* heading.

            * This is confidential information that your server sends via a
            secure channel.
          in: query
          name: access_token
          required: true
          schema:
            example: a1b2c3d4e5f6g7h8i9j0
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: send_test_message
                    type: string
                  module:
                    description: The name of the module called.
                    example: Pushbullet
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          message_id:
                            description: The test message's ID.
                            example: 554d2cbd-efe61da3cacb
                            type: string
                          payload:
                            description: >-
                              The payload from the Pushbullet server. For more
                              information, read

                              [Pushbullet's API
                              documentation](https://docs.pushbullet.com/).


                              **Warning:**


                              This return may contain values that are Boolean
                              primitives. JSON

                              properly represents these, but XML represents them
                              as `0` or `1`.
                            example:
                              active: true
                              body: >-
                                This message confirms that
                                “hostname.example.com“ (192.168.0.20)

                                can send a message to you via Pushbullet.


                                This message was sent on Monday, May 18, 2015 at
                                7:12:20 PM UTC.
                              created: 1431976341.38872
                              direction: self
                              dismissed: false
                              iden: ujw5ScArtjUsjAeRXXMLGS
                              modified: 1431976341.39182
                              receiver_email: user@example.com
                              receiver_email_normalized: user@example.com
                              receiver_iden: ujw5ScArtjU
                              sender_email: user@example.com
                              sender_email_normalized: user@example.com
                              sender_iden: ujw5ScArtjU
                              sender_name: Firstname Lastname
                              title: 'Test message (ID: 555a3994-173a4a271062d)'
                              type: note
                            type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Validate Pushbullet token
      tags:
        - Pushbullet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Pushbullet \
              send_test_message \
              access_token='a1b2c3d4e5f6g7h8i9j0'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Pushbullet/send_test_message?access_token=a1b2c3d4e5f6g7h8i9j0
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Pushbullet_send_test_message.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Pushbullet_send_test_message.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Pushbullet/,
                q/send_test_message/,
                {
                    'access_token' => 'a1b2c3d4e5f6g7h8i9j0',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Pushbullet_send_test_message.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Pushbullet_send_test_message.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Pushbullet',
                'send_test_message',
                array (
                    'access_token' => 'a1b2c3d4e5f6g7h8i9j0',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /Quota/get_local_quota_info:
    get:
      description: >-
        This function retrieves the cPanel account's quota for the server where
        you run the function. For example, a [distributed cPanel
        account](https://go.cpanel.net/glossaryD) could approach its quota. The
        servers will balance that cPanel user's quota between the parent and the
        child node.


        **Note:**

          This function runs on **only** the local server. To retrieve the cPanel account's total quota, use the UAPI `Quota::get_quota` function instead.
      operationId: get_local_quota_info
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_local_quota_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: Quota
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          byte_limit:
                            description: >-
                              The limit for disk space the cPanel account may
                              use on this server, in bytes.

                              * A positive integer.

                              * `0` - Unlimited or disabled server quotas.


                              **Note:**

                               This value does **not** update immediately.
                            example: 262144000
                            minimum: 0
                            type: integer
                          bytes_used:
                            description: >-
                              The amount of disk space the cPanel account uses
                              on this server, in bytes.

                              * A positive integer.

                              * `0` - No usage or disabled server quotas.
                            example: 4149284
                            minimum: 0
                            type: integer
                          inode_limit:
                            description: >-
                              The limit for inodes that the cPanel account may
                              use on this server.

                              * A positive integer.

                              * `0` - Unlimited or disabled server quotas.
                            example: 0
                            minimum: 0
                            type: integer
                          inodes_used:
                            description: >-
                              The number of inodes that the cPanel account uses
                              on this server.

                              * A positive integer.

                              * `0` - No usage or disabled server quotas.
                            example: 1035
                            minimum: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return local disk quota information
      tags:
        - Quota
        - Disk Quotas
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Quota \
              get_local_quota_info
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Quota/get_local_quota_info
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Quota_get_local_quota_info.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Quota_get_local_quota_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Quota/,
                q/get_local_quota_info/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Quota_get_local_quota_info.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Quota_get_local_quota_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Quota',
                'get_local_quota_info'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 88
  /Quota/get_quota_info:
    get:
      description: This function retrieves the cPanel account's quota.
      operationId: get_quota_info
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_quota_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: Quota
                    type: string
                  result:
                    properties:
                      data:
                        description: An object containing the cPanel account's quota.
                        properties:
                          inode_limit:
                            description: |-
                              The account's inode quota limit.

                              * `0` — Unlimited or disabled server quotas.
                            example: 0
                            oneOf:
                              - description: Unlimited or disabled server quotas.
                                enum:
                                  - 0
                                type: integer
                              - description: A positive integer.
                                minimum: 1
                                type: integer
                          inodes_remain:
                            description: |-
                              The account's available inode quota.

                              * `0` — Unlimited or disabled server quotas.
                            example: 0
                            oneOf:
                              - description: Unlimited or disabled server quotas.
                                enum:
                                  - 0
                                type: integer
                              - description: A positive integer.
                                minimum: 1
                                type: integer
                          inodes_used:
                            description: |-
                              The account's number of used inodes.

                              * `0` — No usage or disabled server quotas.
                            example: 1035
                            oneOf:
                              - description: No usage or disabled server quotas.
                                enum:
                                  - 0
                                type: integer
                              - description: A positive integer.
                                minimum: 1
                                type: integer
                          megabyte_limit:
                            description: |-
                              The account's disk space limit, in megabytes (MB).

                              * `0.00` — Unlimited or disabled server quotas.
                            example: 0
                            oneOf:
                              - description: Unlimited or disabled server quotas.
                                enum:
                                  - 0
                                type: number
                              - description: A decimal number.
                                minimum: 1
                                type: number
                          megabytes_remain:
                            description: >-
                              The account's available disk space in, megabytes
                              (MB).


                              * `0.00` — Unlimited or disabled server quotas.
                            example: 0
                            oneOf:
                              - description: Unlimited or disabled server quotas.
                                enum:
                                  - 0
                                type: number
                              - description: A decimal number.
                                minimum: 1
                                type: number
                          megabytes_used:
                            description: |-
                              The account's used disk space, in megabytes (MB).

                              * `0.00` — No usage or disabled server quotas.
                            example: 5.46
                            oneOf:
                              - description: Unlimited or disabled server quotas.
                                enum:
                                  - 0
                                type: number
                              - description: A decimal number.
                                minimum: 1
                                type: number
                          under_inode_limit:
                            description: |-
                              Whether the account is under its inode limit.

                              * `1` — Under limit.
                              * `0` — Over limit.
                            enum:
                              - 1
                              - 0
                            example: 0
                            type: integer
                          under_megabyte_limit:
                            description: >-
                              Whether the account is under its disk space limit,
                              in megabytes (MB).


                              * `1` — Under limit.

                              * `0` — Over limit.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          under_quota_overall:
                            description: >-
                              Whether the account is under both its inode and
                              disk megabyte (MB) limit.


                              * `1` — Under limit.

                              * `0` — Over limit.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return disk quota information
      tags:
        - Quota
        - Disk Quotas
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Quota \
              get_quota_info
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Quota/get_quota_info
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Quota_get_quota_info.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Quota_get_quota_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Quota/,
                q/get_quota_info/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Quota_get_quota_info.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Quota_get_quota_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Quota',
                'get_quota_info'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Resellers/list_accounts:
    get:
      description: This function lists all of a reseller's cPanel accounts.
      operationId: list_accounts
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_accounts
                    type: string
                  module:
                    description: The name of the module called.
                    example: Resellers
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing the reseller's cPanel
                          accounts.
                        items:
                          properties:
                            domain:
                              description: The cPanel account's domain.
                              example: example.com
                              format: domain
                              type: string
                            select:
                              description: >-
                                Whether the cPanel account's user is currently
                                logged in.


                                * `1` — Logged in.

                                * An empty string — **Not** logged in.
                              enum:
                                - '1'
                                - ''
                              example: '1'
                              type: string
                            user:
                              description: The cPanel account's username.
                              example: username
                              format: username
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return reseller's cPanel accounts
      tags:
        - Resellers
        - Account Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Resellers \
              list_accounts
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Resellers/list_accounts
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Resellers_list_accounts.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Resellers_list_accounts.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Resellers/,
                q/list_accounts/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Resellers_list_accounts.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Resellers_list_accounts.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Resellers',
                'list_accounts'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11
  /ResourceUsage/get_usages:
    get:
      description: >-
        This function retrieves resource usage and custom statistics for a
        cPanel user account.
      operationId: get_usages
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_usages
                    type: string
                  module:
                    description: The name of the module called.
                    example: ResourceUsage
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing resource usage
                          information from the account's query.
                        items:
                          properties:
                            description:
                              description: The resource's UI display name.
                              example: MySQL® Databases
                              type: string
                            error:
                              description: An error message, if applicable.
                              example: null
                              nullable: true
                              type: string
                            formatter:
                              description: >-
                                The resource's defined output format.


                                * `format_bytes`

                                * `format_bytes_per_second`

                                * `percent`

                                * `null` — No defined output format.


                                **Note:**


                                Third-party modules will return their defined
                                formatter value.
                              example: format_bytes
                              oneOf:
                                - description: The resource's defined output format.
                                  enum:
                                    - format_bytes
                                    - format_bytes_per_second
                                    - percent
                                  nullable: true
                                  type: string
                                - description: >-
                                    A third-party module's defined formatter
                                    value.
                                  type: string
                            id:
                              description: >-
                                The resource's reference name.

                                * `disk_usage`

                                * `filesusage` - This function **only** returns
                                this value if the *Display File Usage
                                information in the cPanel stats bar* setting is
                                enabled in the *Display* section of WHM's
                                [*Tweak
                                Settings*](https://go.cpanel.net/whmdocsTweakSettings#display)
                                interface (*WHM >> Home >> Server Configuration
                                >> Tweak Settings*).

                                * `cachedmysqldiskusage`

                                * `cachedpostgresdiskusage` - This function
                                **only** returns this value if [PostgreSQL®
                                databases](https://go.cpanel.net/cpaneldocsPostgreSQLDatabases)
                                are enabled.

                                * `bandwidth`

                                * `addon_domains`

                                * `subdomains`

                                * `aliases`

                                * `email_accounts`

                                * `mailing_lists` - This function **only**
                                returns this value if the Mailman service is
                                enabled in WHM's [*Service
                                Manager*](https://go.cpanel.net/whmdocsServiceManager)
                                interface (*WHM >> Home >> Service Configuration
                                >> Service Manager*).

                                * `autoresponders`

                                * `forwarders`

                                * `email_filters`

                                * `ftp_accounts` - This function **only**
                                returns this value if FTP accounts exist on the
                                server.

                                * `mysql_databases` - This function **only**
                                returns this value if MySQL® databases are
                                enabled.

                                * `postgresql_databases`


                                **Note:**


                                Certain `id` values may **not** appear, based on
                                the [server's current
                                profile](https://go.cpanel.net/howtouseserverprofiles#profiles).
                              example: mysql_databases
                              type: string
                            maximum:
                              description: |-
                                The resources's maximum usage value.

                                **Note:**

                                 This function returns an null value for an (unlimited) quota.
                              example: 15
                              minimum: 0
                              nullable: true
                              type: integer
                            url:
                              description: >-
                                The resource's defined URL link to its
                                corresponding interface, in applicable.
                              example: sql/index.html
                              format: url-path
                              type: string
                            usage:
                              description: The resource's current usage value.
                              example: 0
                              minimum: 0
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return resource usage and custom statistics
      tags:
        - ResourceUsage
        - Resource Usage and Statistics
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ResourceUsage \
              get_usages
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ResourceUsage/get_usages
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ResourceUsage_get_usages.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/ResourceUsage_get_usages.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ResourceUsage/,
                q/get_usages/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ResourceUsage_get_usages.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/ResourceUsage_get_usages.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ResourceUsage',
                'get_usages'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Restore/directory_listing:
    get:
      description: >-
        This function lists all of the backup files and directories in the
        user's home directory.


        **Important:**


        When you disable the [File Storage
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: directory_listing
      parameters:
        - description: >-
            A path to a subdirectory within the user's home directory, or any
            level below it.


            **Note:**


            The value of this parameter **must** begin and end with a forward
            slash (`/`) for security purposes.
          in: query
          name: path
          required: true
          schema:
            example: /public_html/
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: directory_listing
                    type: string
                  module:
                    description: The name of the module called.
                    example: Restore
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains information about a specific
                          item stored in the backup.
                        items:
                          properties:
                            conflict:
                              description: >-
                                Whether a difference exists between the `type`
                                and `onDiskType` returns.

                                * `1` - Conflict exists.

                                * `0` - **No** conflict exists.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            exists:
                              description: >-
                                Whether the file exists in the user's directory
                                or **only** in the backup.

                                * `1` - File exists in the user's directory.

                                * `0` - File exists **only** in the backup.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            name:
                              description: The name of the file or directory.
                              example: public_html
                              type: string
                            onDiskType:
                              description: |-
                                The item type stored on the disk.
                                * `dir` - A directory.
                                * `file` - A file.
                                * `symlink` - A symlink.
                                * `unknown` - An unknown file type.
                              enum:
                                - dir
                                - file
                                - symlink
                                - unknown
                              example: file
                              type: string
                            type:
                              description: |-
                                The item type stored in the backup.
                                * `dir` - A directory.
                                * `file` - A file.
                                * `symlink` - A symlink.
                                * `unknown` - An unknown file type.
                              enum:
                                - dir
                                - file
                                - symlink
                                - unknown
                              example: file
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
          description: HTTP Request was successful.
      summary: Return backups in home directory
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Restore \
              directory_listing \
              path='/public_html/'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Restore/directory_listing?path=%2fpublic_html%2f
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Restore_directory_listing.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Restore_directory_listing.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Restore/,
                q/directory_listing/,
                {
                    'path' => '/public_html/',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Restore_directory_listing.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Restore_directory_listing.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Restore',
                'directory_listing',
                array (
                    'path' => '/public_html/',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 68
  /Restore/get_users:
    get:
      description: >-
        This function lists a reseller's users that have existing backup
        metadata.


        **Note:**


        When you disable the [File Storage
        role](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: get_users
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_users
                    type: string
                  module:
                    description: The name of the module called.
                    example: Restore
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of reseller account names.
                        items:
                          example: username
                          format: username
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel accounts with backup metadata
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Restore \
              get_users
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Restore/get_users
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Restore_get_users.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Restore_get_users.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Restore/,
                q/get_users/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Restore_get_users.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Restore_get_users.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Restore',
                'get_users'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 72
  /Restore/query_file_info:
    get:
      description: >-
        This function lists all of an item's backup locations. An item can be a
        file, a directory, or a symlink.


        **Important:**


        When you disable the [File Storage
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: query_file_info
      parameters:
        - description: >-
            A file, directory, or symlink in the user's directory tree.


            **Note:**


            The value of this parameter **must** begin with a forward slash
            (`/`).
          in: query
          name: path
          required: true
          schema:
            example: /public_html/index.php
            format: path
            type: string
        - description: "Whether to show the `exist` return, which indicates whether the item exists in the\nlocal disk or only in the backup.\n\n* `1` —\_Show the `exist` return's value.\n* `0` —\_Do **not** show the `exists` return's value."
          in: query
          name: exists
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: query_file_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: Restore
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects containing the item's details.
                        items:
                          properties:
                            backupDate:
                              description: The date when the system created the backup.
                              example: '2020-07-01T00:00:00.000Z'
                              format: ISO-8601 Date
                              type: string
                            backupID:
                              anyOf:
                                - description: >-
                                    A daily backup file from a specified backup
                                    date.
                                  format: ISO-8601 Date
                                  type: string
                                - description: An incremental daily backup.
                                  enum:
                                    - incremental
                                  type: string
                                - description: A weekly or monthly incremental backup.
                                  enum:
                                    - weekly/incremental
                                    - monthly/incremental
                                  type: string
                                - description: >-
                                    A weekly or monthly backup from a specified
                                    backup date.
                                  type: string
                              description: >-
                                The backup's identification.


                                * A date, in `YYYY-MM-DD` format.

                                * `incremental` — An incremental daily backup.

                                * The backup frequency (`weekly` or `monthly`) ,
                                a slash character (`/`), and the value
                                `incremental`.

                                * The backup frequency (`weekly` or `monthly`),
                                a slash character (`/`), and the backup date, in
                                `YYYY-MM-DD` format.
                              example: weekly/2017-07-01
                              type: string
                            backupType:
                              description: >-
                                The backup type.


                                * `compressed` —  A compressed tar file.

                                * `incremental` — A full tree of files and
                                directories.

                                * `uncompressed` — An uncompressed tar file.
                              enum:
                                - compressed
                                - incremental
                                - uncompressed
                              example: compressed
                              type: string
                            exists:
                              description: >-
                                Whether the item (a file, a directory, or a
                                symlink) exists in the local disk or only in the
                                backup.


                                * `1` — The item exists in the local disk.

                                * `0` — The item exists only in the backup.


                                **Note:**


                                This return appears **only** if you set the
                                `exists` parameter to `1`.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            fileSize:
                              description: >-
                                The size, in bytes, of the file in the backup.


                                **Note:**


                                The function returns this value **only** if the
                                item is a file.
                              example: 199
                              minimum: 0
                              type: integer
                            mtime:
                              description: The file's last modification time.
                              example: 1520043240
                              format: unix_timestamp
                              type: integer
                            path:
                              description: >-
                                The identical file path value that the system
                                passed in the function.
                              example: /public_html/index.php
                              format: path
                              type: string
                            type:
                              description: |-
                                The item type stored in the backup.

                                * `dir` — A directory.
                                * `file` — A file.
                                * `symlink` — A symlink.
                                * `unknown` — An unknown file type.
                              enum:
                                - dir
                                - file
                                - symlink
                                - unknown
                              example: file
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return backup storage locations
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Restore \
              query_file_info \
              path='/public_html/index.php'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Restore/query_file_info?path=%2fpublic_html%2findex.php
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Restore_query_file_info.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Restore_query_file_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Restore/,
                q/query_file_info/,
                {
                    'path' => '/public_html/index.php',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Restore_query_file_info.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Restore_query_file_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Restore',
                'query_file_info',
                array (
                    'path' => '/public_html/index.php',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 68
  /Restore/restore_file:
    get:
      description: >-
        This function restores a file or directory from a backup to the file or
        directory's original location.


        **Important:**


        When you disable the [File Storage
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: restore_file
      parameters:
        - description: "The backup's identification.\n\n* `YYYY-MM-DD` —\_Restore a daily backup from the specified backup date.\n* `incremental` — Restore a daily incremental backup.\n* `weekly/YYYY-MM-DD` — Restore a weekly backup from the specified backup date.\n* `monthly/YYYY-MM-DD` — Restore a monthly backup from the specified backup date.\n* `weekly/incremental` — Restore a weekly incremental backup.\n* `monthly/incremental` — Restore a monthly incremental backup."
          in: query
          name: backupID
          required: true
          schema:
            anyOf:
              - description: A daily backup file from a specified backup date.
                format: ISO-8601 Date
                type: string
              - description: An incremental daily backup.
                enum:
                  - incremental
                type: string
              - description: A weekly or monthly incremental backup.
                enum:
                  - weekly/incremental
                  - monthly/incremental
                type: string
              - description: A weekly or monthly backup from a specified backup date.
                type: string
            example: weekly/2017-07-03
        - description: "Whether to overwrite the file or directory on the disc with its backup replacement.\n\n* `1` —\_Overwrite the file or directory.\n* `0` —\_Do **not** overwrite the file or directory."
          in: query
          name: overwrite
          required: true
          schema:
            enum:
              - 1
              - 0
            example: 1
            type: integer
        - description: "The absolute file or directory's path, within a backup, that you wish to restore.\n\n**Important:**\n\n* The value of this parameter **must** begin with a forward slash (/).\n* You\_**must** parse filenames properly to prevent a cross-site scripting (XSS) attack."
          in: query
          name: path
          required: true
          schema:
            example: /public_html/index.php
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: restore_file
                    type: string
                  module:
                    description: The name of the module called.
                    example: Restore
                    type: string
                  result:
                    properties:
                      data:
                        description: An object containing the status of the operation.
                        properties:
                          success:
                            description: |-
                              Whether the `overwrite` parameter succeeded.

                              * `1` — Success.
                              * `0` — Failure.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Restore file or directory
      tags:
        - File Restoration
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Restore \
              restore_file \
              backupID='weekly/2017-07-03' \
              path='/public_html/index.php' \
              overwrite='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Restore/restore_file?backupID=weekly%2f2017-07-03&path=%2fpublic_html%2findex.php&overwrite=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Restore_restore_file.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Restore_restore_file.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Restore/,
                q/restore_file/,
                {
                    'backupID' => 'weekly/2017-07-03',
                    'path' => '/public_html/index.php',
                    'overwrite' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Restore_restore_file.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Restore_restore_file.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Restore',
                'restore_file',
                array (
                    'backupID' => 'weekly/2017-07-03',
                    'path' => '/public_html/index.php',
                    'overwrite' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 68
  /SSH/get_port:
    get:
      description: This function retrieves the server's SSH port.
      operationId: SSH-get_port
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_port
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSH
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          port:
                            description: The server's SSH port.
                            example: 22
                            maximum: 65535
                            minimum: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return SSH port
      tags:
        - SSH
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSH \
              get_port
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSH/get_port
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSH_get_port.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to .../frontend/<theme_name>/api_examples/SSH_get_port.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSH/,
                q/get_port/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSH_get_port.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSH_get_port.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSH',
                'get_port'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/add_autossl_excluded_domains:
    get:
      description: >-
        This function disables AutoSSL for the domains that you specify.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server [roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: add_autossl_excluded_domains
      parameters:
        - description: |-
            A comma-separated list of domains for which to disable AutoSSL.

            **Note:**

            For browser-based calls, use a URI encoded comma (`%2C`).
          in: query
          name: domains
          required: true
          schema:
            example: example.com,example2.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_autossl_excluded_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Disable AutoSSL for domains
      tags:
        - SSL
        - Auto-generated SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              add_autossl_excluded_domains \
              domains='example.com,example2.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/add_autossl_excluded_domains?domains=example.com%2cexample2.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_add_autossl_excluded_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_add_autossl_excluded_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/add_autossl_excluded_domains/,
                {
                    'domains' => 'example.com,example2.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_add_autossl_excluded_domains.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_add_autossl_excluded_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'add_autossl_excluded_domains',
                array (
                    'domains' => 'example.com,example2.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /SSL/can_ssl_redirect:
    get:
      description: >-
        This function determines whether the system can automatically redirect
        domains on a cPanel account to use SSL.
      operationId: can_ssl_redirect
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: can_ssl_redirect
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the system can automatically redirect the
                          domains to use SSL.

                          * `1` - Can redirect.

                          * `0` - **Cannot** redirect.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether domains can redirect to secure URL
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              can_ssl_redirect
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/can_ssl_redirect
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_can_ssl_redirect.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_can_ssl_redirect.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/can_ssl_redirect/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_can_ssl_redirect.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_can_ssl_redirect.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'can_ssl_redirect'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /SSL/check_shared_cert:
    get:
      deprecated: true
      description: >-
        This function checks whether a shared SSL certificate is associated with
        the account.
      operationId: check_shared_cert
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: check_shared_cert
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether a shared SSL certificate is associated with
                          the account.

                          * `1` - Associated.

                          * `0` - Not associated.
                        enum:
                          - 0
                          - 1
                        example: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 0
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether shared SSL certificate exists
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              check_shared_cert
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/check_shared_cert
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_check_shared_cert.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_check_shared_cert.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/check_shared_cert/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_check_shared_cert.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_check_shared_cert.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'check_shared_cert'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/delete_cert:
    get:
      description: >-
        This function deletes an SSL certificate.


        **Note:**


        * When you call this function, you **must** include the `id` or the
        `friendly_name`

        parameter.

        * This function **only** deletes certificates from SSL storage. To end
        SSL

        coverage for a domain, use the UAPI `SSL::delete_ssl` function instead.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: delete_cert
      parameters:
        - description: The certificate's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestCert
            type: string
        - description: The certificate's ID.
          in: query
          name: id
          required: false
          schema:
            example: >-
              example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_cert
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            created:
                              description: The date the certificate was created.
                              example: 1538308800
                              format: unix_timestamp
                              type: integer
                            domains:
                              description: >-
                                A list of the domains that the certificate
                                covers.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: >-
                                The ECDSA curve that the certificate's key uses.


                                * `prime256v1`

                                * `secp384r1`

                                * `null` — The certificate's key is **not** an
                                ECDSA key.
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: >-
                                The certificate's key's ECDSA compressed public
                                point, in hexadecimal format.


                                * `null` — The certificate's key is **not** an
                                ECDSA key.
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The certificate's friendly name.
                              example: TestCert
                              type: string
                            id:
                              description: The certificate's ID.
                              example: >-
                                example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
                              type: string
                            is_self_signed:
                              description: |-
                                Whether the certificate is self-signed.

                                * `1` — Self-signed.
                                * `0` — Not self-signed.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            issuer.commonName:
                              description: The certificate's Common Name.
                              example: example.com
                              type: string
                            issuer.organizationName:
                              description: The certificate's Organization Name.
                              example: Organization
                              type: string
                            issuer_text:
                              description: The certificate's issuer information.
                              example: |-
                                countryName
                                US
                                stateOrProvinceName
                                TX
                                localityName
                                Houston
                                organizationName
                                Organization
                                commonName
                                example.com
                              type: string
                            key_algorithm:
                              description: |-
                                The certificate's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: >-
                                The certificate's key's modulus, in hexadecimal
                                format.


                                * `null` — The certificate's key is **not** an
                                RSA key.
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                            modulus_length:
                              description: >-
                                The length, in bits, of the certificate's key's
                                modulus.


                                * `null` — The certificate's key is **not** an
                                RSA key.
                              example: 2048
                              nullable: true
                              type: integer
                            not_after:
                              description: The date the certificate expired.
                              example: 1569844800
                              format: unix_timestamp
                              type: integer
                            not_before:
                              description: The date the certificate started.
                              example: 1538308800
                              format: unix_timestamp
                              type: integer
                            serial:
                              description: The certificate's serial number.
                              example: 45462cd0d6537b20cf2f3eb8aec07140
                              type: string
                            signature_algorithm:
                              description: The certificate's OID signature hash algorithm.
                              example: sha256WithRSAEncryption
                              type: string
                            subject.commonName:
                              description: The certificate's Common Name.
                              example: example.com
                              type: string
                            subject_text:
                              description: The certificate's subject text information.
                              example: |-
                                commonName
                                www.example.com
                              type: string
                            validation_type:
                              description: "The certificate's validation type.\n\n* `ev` — Extended Validation.\n* `ov` —\_Organization Validation.\n* `dv` — Domain Validation.\n* `null` — The system could not parse and determine the\ncertificate's validation type."
                              enum:
                                - ev
                                - ov
                                - dv
                              example: dv
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete SSL certificate
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              delete_cert
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/delete_cert
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_delete_cert.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_delete_cert.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/delete_cert/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_delete_cert.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_delete_cert.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'delete_cert'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/delete_csr:
    get:
      description: >-
        This function deletes a certificate signing request (CSR).


        **Note:**


        * When you call this function, you **must** include the `id` or the
        `friendly_name`

        parameter.

        * To delete a private key, use the UAPI `SSL::delete_key` function
        instead.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: delete_csr
      parameters:
        - description: The CSR's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestCSR
            type: string
        - description: The CSR's ID.
          in: query
          name: id
          required: false
          schema:
            example: example_com_e095f_0ab2f_ebcbe4a571276f48562241411556647f
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_csr
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            commonName:
                              description: The CSR's Common Name.
                              example: example.com
                              format: domain
                              type: string
                            created:
                              description: The CSR's creation date.
                              example: 1538308800
                              format: unix_timestamp
                              type: integer
                            domains:
                              description: A list of the domains that the CSR covers.
                              items:
                                example: example.com
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: >-
                                The ECDSA curve that the CSR's key uses.


                                * `prime256v1`

                                * `secp384r1`

                                * `null` — The CSR's key is **not** an ECDSA
                                key.
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: >-
                                The CSR's key's ECDSA compressed public point,
                                in hexadecimal format.


                                * `null` — The CSR's key is **not** an ECDSA
                                key.
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The CSR's friendly name.
                              example: TestCSR
                              type: string
                            id:
                              description: The CSR's ID.
                              example: >-
                                example_com_e095f_0ab2f_ebcbe4a571276f48562241411556647f
                              type: string
                            key_algorithm:
                              description: |-
                                The CSR's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: |-
                                The CSR's key's modulus, in hexadecimal format.

                                * `null` — The CSR's key is **not** an RSA key.
                              example: >-
                                a74f7636fa6ac93ee6836a83a995b55deb5019ea36d7ba3dafb00e38d693acd

                                b0c81b2ff777d6b433a420fae523f127f352a68bcc8b8f2d6ee7b70395bafab

                                d8237ada8164fdddf8376b30375c35d4d4cbcce7d33d08069c17b409176a368

                                9f1ebc97c0b08fe6ae44c19a92ac6d68448e7f1d13f3b360affd4222a51b4f3

                                5342de99b5a1fb5548e438f2d824664562a448002eed7fce24dedc7dc3e1ed1

                                79973d1dae959b33716eeb410d172708954e00632cbf60a0e26419860c8c0bc

                                285d6bfe4b479de0dd189772a5dae676bd2a92acccc1369821be8cffddd8a7e

                                6ecc061f8a32a9ae0661e4e946ed8e3827b277138d3a76116567cbd129cbd86

                                9ef9dddf
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete certificate signing request
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              delete_csr
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/delete_csr
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_delete_csr.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_delete_csr.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/delete_csr/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_delete_csr.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_delete_csr.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'delete_csr'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/delete_key:
    get:
      description: >-
        This function deletes a private key.


        **Note:**


        * When you call this function, you **must** include the `id` or the
        `friendly_name`

        parameter.

        * To delete a certificate signing request (CSR), use the UAPI
        `SSL::delete_csr`

        function instead.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: delete_key
      parameters:
        - description: The private key's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestKey
            type: string
        - description: The private key's ID.
          in: query
          name: id
          required: false
          schema:
            example: example_com_e095f_0ab2f_ebcbe4a571276f48562241411556647f
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            created:
                              description: The private key's creation date.
                              example: 1538308800
                              format: unix_timestamp
                              type: integer
                            ecdsa_curve_name:
                              description: |-
                                The ECDSA curve that the key uses.

                                * `prime256v1`
                                * `secp384r1`
                                * `null` — The key is **not** an ECDSA key.
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: >-
                                The key's ECDSA compressed public point, in
                                hexadecimal format.


                                * `null` — The key is **not** an ECDSA key.
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The private key's friendly name.
                              example: TestKey
                              type: string
                            key_algorithm:
                              description: |-
                                The key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: |-
                                The key's modulus, in hexadecimal format.

                                * `null` — The key is **not** an RSA key.
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                            modulus_length:
                              description: |-
                                The length, in bits, of the key's modulus.

                                * `null` — The key is **not** an RSA key.
                              example: 2048
                              nullable: true
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete private key
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              delete_key
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/delete_key
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_delete_key.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_delete_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/delete_key/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_delete_key.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_delete_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'delete_key'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/delete_ssl:
    get:
      description: >-
        This function removes SSL from a domain.


        **Note:**


        This function removes domains from the current certificate to end SSL
        coverage for those

        domains. To delete certificates from SSL storage, use the UAPI function
        `SSL::delete_cert`

        instead.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, **and** Web Server

        [roles](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: delete_ssl
      parameters:
        - description: The domain name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_ssl
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: >-
                          An array containing a message about the domain's SSL
                          removal.
                        example:
                          - The SSL host was successfully removed.
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove SSL for domain
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              delete_ssl \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/delete_ssl?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_delete_ssl.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_delete_ssl.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/delete_ssl/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_delete_ssl.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_delete_ssl.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'delete_ssl',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/disable_mail_sni:
    get:
      description: |-
        This function disables SNI mail services on the specified domains.

        **Note:**

          Mail SNI is **always** enabled.

          * After you change the SNI status, you **must** run UAPI's `rebuild_mail_sni_config` function.
          * Functions that enable Mail SNI succeed with a warning that Mail SNI is always enabled.
          * Functions that disable Mail SNI fail and make no changes.
      operationId: disable_mail_sni
      parameters:
        - description: A pipe-delimited list of the account's domains.
          in: query
          name: domains
          required: true
          schema:
            example: example.com|example1.com|example2.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_mail_sni
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          failed_domains:
                            example2.com: >-
                              Sorry, example2.com is not one of the domains on
                              your account.
                          updated_domains:
                            example.com: 1
                            example1.com: 1
                        properties:
                          failed_domains:
                            additionalProperties:
                              description: |-
                                The reason the domain failed to disable SNI.

                                **Note:**

                                 The domain name is the return name.
                              type: string
                            description: >-
                              An object containing the domains that failed to
                              disable
                               mail SNI.
                            type: object
                          updated_domains:
                            additionalProperties:
                              description: |-
                                Whether the domain's SNI is disabled.

                                * `1` - Disabled.
                                * `0` - Not disabled.

                                **Note:**

                                The domain name is the return name.
                              enum:
                                - 0
                                - 1
                              type: integer
                            description: >-
                              AN object containing the domains with disabled
                              mail SNI.
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: |-
                          List of warnings generated by the API. Warnings
                           describe non-critical failures or other problematic conditions
                           noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable SNI mail services for domain
      tags:
        - SSL
        - SNI Email Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              disable_mail_sni \
              domains='example.com|example1.com|example2.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/disable_mail_sni?domains=example.com%7cexample1.com%7cexample2.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_disable_mail_sni.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_disable_mail_sni.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/disable_mail_sni/,
                {
                    'domains' => 'example.com|example1.com|example2.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_disable_mail_sni.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_disable_mail_sni.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'disable_mail_sni',
                array (
                    'domains' => 'example.com|example1.com|example2.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /SSL/enable_mail_sni:
    get:
      description: >-
        This function enables SNI mail services on the specified domains.


        **Warning:**


        Mail SNI is **always** enabled.

        * Mail SNI is **not** compatible with Webmail and will **not** function
        for any Webmail connection. Webmail connections use the cPanel service
        SSL certificate.

        * Functions that enable Mail SNI succeed with a warning that Mail SNI is
        always enabled.

        * Functions that disable Mail SNI fail and make no changes.


        **Important:**

          When you disable the *Calendars and Contacts*, *Mail Receive*, *Web Disk*, *Webmail*, **and** *Web Server* [roles](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: enable_mail_sni
      parameters:
        - description: A pipe-delimited list of the account's domains.
          in: query
          name: domains
          required: true
          schema:
            example: example.com|example1.com|example2.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_mail_sni
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          failed_domains:
                            example2.com: >-
                              Sorry, example.com is not one of the domains on
                              your account.
                          updated_domains:
                            example.com: 1
                            example1.com: 1
                        properties:
                          failed_domains:
                            additionalProperties:
                              description: |-
                                The reason the domain failed to enable mail SNI.

                                **Note:**

                                 The domain name is the return name.
                              example: >-
                                Sorry, example.com is not one of the domains on
                                your account.
                              type: string
                            description: >-
                              An object that contains the domains that did not
                              enable mail SNI.
                            type: object
                          updated_domains:
                            additionalProperties:
                              description: |-
                                Whether the domain's SNI is enabled.

                                * `1` - Enabled.
                                * `0` - Not enabled.

                                **Note:**

                                The domain name is the return name.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            description: >-
                              An object that contains the domains with disabled
                              mail SNI.
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example:
                          - cPanel & WHM always enables mail SNI from now on.
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable SNI mail services for domain
      tags:
        - SSL
        - SNI Email Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              enable_mail_sni \
              domains='example.com|example1.com|example2.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/enable_mail_sni?domains=example.com%7cexample1.com%7cexample2.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_enable_mail_sni.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_enable_mail_sni.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/enable_mail_sni/,
                {
                    'domains' => 'example.com|example1.com|example2.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_enable_mail_sni.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_enable_mail_sni.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'enable_mail_sni',
                array (
                    'domains' => 'example.com|example1.com|example2.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /SSL/fetch_best_for_domain:
    get:
      description: >-
        This function retrieves the best-available certificate for the domain.
        The function also

        retrieves the certificate's associated private key and CA bundle, if
        available.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: fetch_best_for_domain
      parameters:
        - description: The domain name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_best_for_domain
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cab:
                            description: The CA bundle's contents (if applicable).
                            example: >-
                              -----BEGIN CERTIFICATE-----

                              MIID/DCCAuSgZwBBAvIFANEXIaYwDQYJKoZIhvcNAQELBQAwFjEUMBIGA1UEAwwL

                              ZXhhbXBsZS5jb20wHhcNMjAwNDA2MTY0NDU2WhcNMjEwNDA2MTY0NDU2WjAWMRQw

                              EgYDVQQDDAtleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC

                              ggEBALuCGWz/aFOr5TPBehISu3LkcGvnNFg9eY8rVXbNFfpBzyzdWrx5IiMtBcDx

                              AZXMOU7GSZyFhSB6cjNfCaESXC/gBTa0sZ/b4b4etNUlNHUFAatb9WckQ6AtWbVA

                              pxu8aw/5AjAKgMbkaNrUY3vzLzin11CyGOFkbAKwVqT13Z3Yyz/xuz7x2+yMwPBh

                              9mEP0tXjvCz7NzETFSTysn9Sf+VjUle0upnpl8Q7GK52CDpvwdqE/O6MrTx/XrXm

                              YUfeSkZd+nqFm4oxmrf01hOL2IlEit1RupILwVm2/8CK2sAdazTqh4LapA962b9V

                              SKm31YbsGT3kQg5EERbjIgiN6M8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRhFUQb

                              h7YE6tgcpiHke60td96d4zAJBgNVHRMEAjAAMEIGA1UdIwQ7MDmAFGEVRBuHtgTq

                              2BymIeR7rS133p3joRqkGDAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbYIFANEXIaYw

                              HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMIG7BgNVHREEgbMwgbCCC2V4

                              YW1wbGUuY29tghBtYWlsLmV4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5jb22CEmNw

                              YW5lbC5leGFtcGxlLmNvbYITd2VibWFpbC5leGFtcGxlLmNvbYITd2ViZGlzay5l

                              eGFtcGxlLmNvbYIWY3Bjb250YWN0cy5leGFtcGxlLmNvbYIXY3BjYWxlbmRhcnMu

                              ZXhhbXBsZS5jb22CD3dobS5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEA

                              T0TaI0ypM3eqtRSddgyoy5+nXi8a9a8xFKrwEAljBua3rNR6fOfedMOg9NFwCmQD

                              w96/eZJjq+xMh57yLEGu05OBbyFVsdu2AXVhwHeBaURrGn5p7IjNM+dB+ld+oCnP

                              ex6iisbsfxwUqa7y2vqTU5XaUiXfccqEz8ofvuTcqNs8bgGn0Tm90XbgGnPVd7zl

                              Gm4t7Gf2pvMNd2R1prJ07z42bp/z8E2DcFhb/QZnblFOhJ8jPspxYK4G5XmwwYZD

                              79NDK47OyG3hTiinxroKMjqIgnLT7ZabDMGHJkcg5xOL/VdYi7ZGHAnBEwA8eadO

                              dh3jFPxGGIBJTTmKIScSrm==

                              -----END CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          crt:
                            description: The certificate's contents.
                            example: >-
                              -----BEGIN CERTIFICATE-----

                              MIID/DCCAuSgZwBBAvIFANEXIaYwDQYJKoZIhvcNAQELBQAwFjEUMBIGA1UEAwwL

                              ZXhhbXBsZS5jb20wHhcNMjAwNDA2MTY0NDU2WhcNMjEwNDA2MTY0NDU2WjAWMRQw

                              EgYDVQQDDAtleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC

                              ggEBALuCGWz/aFOr5TPBehISu3LkcGvnNFg9eY8rVXbNFfpBzyzdWrx5IiMtBcDx

                              AZXMOU7GSZyFhSB6cjNfCaESXC/gBTa0sZ/b4b4etNUlNHUFAatb9WckQ6AtWbVA

                              pxu8aw/5AjAKgMbkaNrUY3vzLzin11CyGOFkbAKwVqT13Z3Yyz/xuz7x2+yMwPBh

                              9mEP0tXjvCz7NzETFSTysn9Sf+VjUle0upnpl8Q7GK52CDpvwdqE/O6MrTx/XrXm

                              YUfeSkZd+nqFm4oxmrf01hOL2IlEit1RupILwVm2/8CK2sAdazTqh4LapA962b9V

                              SKm31YbsGT3kQg5EERbjIgiN6M8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRhFUQb

                              h7YE6tgcpiHke60td96d4zAJBgNVHRMEAjAAMEIGA1UdIwQ7MDmAFGEVRBuHtgTq

                              2BymIeR7rS133p3joRqkGDAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbYIFANEXIaYw

                              HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMIG7BgNVHREEgbMwgbCCC2V4

                              YW1wbGUuY29tghBtYWlsLmV4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5jb22CEmNw

                              YW5lbC5leGFtcGxlLmNvbYITd2VibWFpbC5leGFtcGxlLmNvbYITd2ViZGlzay5l

                              eGFtcGxlLmNvbYIWY3Bjb250YWN0cy5leGFtcGxlLmNvbYIXY3BjYWxlbmRhcnMu

                              ZXhhbXBsZS5jb22CD3dobS5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEA

                              T0TaI0ypM3eqtRSddgyoy5+nXi8a7a6xFKrwEAljBua3rNR6fOfedMOg9NFwCmQD

                              w96/eZJjq+xMh57yLEGu05OBbyFVsdu2AXVhwHeBaURrGn5p7IjNMjdB+ld+oCmU

                              ex6iisbsfxwUqa7y2vqTU5XaUiXfccqEz8ofvuTcqNs8bgGn0Tm90XbgGnPVd7zl

                              Gm4t7Gf2pvMNd2R1prJ07z42bp/z8E2DcFhb/RPnblFOhJ8jPspxYK4G5XmwwYZD

                              79NDK47OyG3hTiinxroKMjqIgnLT4ZabDMGHJkcg5xOL/VdYi7ZGHAnBEwA8eadO

                              dh3jFPxGGIBJTTmKIScSbg==

                              -----END CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          crt_origin:
                            description: The username that generated the certificate.
                            example: username
                            format: username
                            type: string
                          domain:
                            description: The domain that generated the private key.
                            example: example.com
                            format: domain
                            type: string
                          ip:
                            description: The IP address.
                            example: 192.168.0.1
                            format: ipv4
                            type: string
                          key:
                            description: The private key.
                            example: >-
                              -----BEGIN RSA PRIVATE KEY-----

                              MIIEpAIBBCKAAQNAu4IZbP0oU6vlM8F6EhK9cuRrs+c1WD24jytPds0V+kH+LN1a

                              vHkiIy0FwPABlcw5TrZJnIWFIHpyM18JoRJcM+AFNrSxn9vhvh601SU0dQUBq1v1

                              ZyRDoC1ZtUCnG7xrD/kCMAqAxuRo2tRje/MvOKfXULIY4WRsArBWpPXdndjLP/G7

                              PvHb7IzA8GH2YQ/S1eO8LPs3MRMVJPKyf1J/5WNSV7S6memXxDsYrnYIOm/B2oT8

                              7oytPH9eteZhR95KRl36eoWbijGat/TWE4vYiUSK3VG6kgvBWbb/wIrawB1rNOqH

                              gtqkD3rZv1VIqbfVhuwZPeRCDkQRFuMiCI3ozwIDAQABAoIBAFADflIS0zQRQCdL

                              wol/0NmAPbDt4lpdMUg0161wapZ2CrA8bQHMNxMHnVLuBR0lHrdMyhCusVZgqebe

                              AT/ok8oiMFdd2AY9UCFO/R+PVskwr7ut7BRtVyY88/Dye9zMFGumeJaDhNxaj5wB

                              0coMxfPJO4pF1XQo5CZplS+jc0RtiNnRmWP/zwwtH+QwT43GXKS3U3QgX1a/7Yzw

                              liUFuggsjysNPovM5NzcgzYfVlMg3F9fDnMeve2s/MO6/wCIp1+SHN89DwluDmw0

                              II0sJDtBRB1nPqseLV1XwYImdSosKuaUIK225vQy/cXK9S/zcq6+d6P5efCw8nRg

                              bCfwd7ECgYEA8Agkx+P7zBAWItnkrNzah6QaWd3VP5bSw6WeHwcWIS1h3ASKSr3u

                              T8rp5qDTk92eV/g5Uqr5lr8txnp448wnipeK0LDF4r+uhOsHOY4B4eFiTsRecXKD

                              zlcC/ees4UOzbdptqosyAG5ub8UMwEH0zPOCszpnIhZkm004EHxc8zUCgYEAx/t0

                              F1DYHm834CYyHfq3XiuB3yNECKMQZ1lgcq8IXaO3EJKnaSF3INogS1lZ6hQR2AW+

                              tr+U6LdBRzsxH0ZeHu/lYCZ6ssgV3H6HTLlFVRysufVdlLaeaKAMuEADrUhVgvVA

                              8rNM+8WSxrfya+2a/PwyJD9YdHCITcXVdwHHCHMCgYBLhYRtECJNVlJgrMXyTZrE

                              SrGvzMgntcCiph1WDdi8n5bGrvcEBTZSDLoDQl7Pi08ixorio8Db2VMBu88FfVqD

                              lKKsfrIEYeL7FyeyyCd3dn6D4e0FLM6jwWTDln0iczalPbB7lEgrMpO0vv8ADsCD

                              K6rX1ZxZoWoOQwF8zmRAcQKBgQC85weoJpOfXAt5zlq1+ulPKOXKs3NGfVG3bjOp

                              4SuT2FvKad19b0EqZSDzR/ylIkQgvHyD/8BXexNMh9tE4aFys8UF6BMq4dnUqCiC

                              DtgxJ575IY8+NKq5xcV+HenbO2KbC7RIDZqAkQauc3+o947ZvhhXKQcTJmF6pY+Y

                              lLM/hQKBgQCplo1rGsimNitBb2iw2B+jDJoMBLYjWeZWcr8VMwVlN9DXPG19uXKq

                              CsbrteMX3VedbeRYk/NITsasRefZq7JDSe9JbsPxj3I+/nzV0EbMXX9cxJL3hkCc

                              5QAmE/BMR7yh0odK57o+mcQZtecIEO1BK/qW6Au0otQHPraygGCwkQ==

                              -----END RSA PRIVATE KEY-----
                            format: pem-private-key
                            type: string
                          key_origin:
                            description: The username that generated the private key.
                            example: username
                            format: username
                            type: string
                          searched_users:
                            description: >-
                              The cPanel accounts that the system searched for
                              domain information.
                            items:
                              example: username
                              format: username
                              type: string
                            type: array
                          status:
                            description: |-
                              Whether the certificate is active.
                              * `1` - Active.
                              * `0` - Inactive.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          statusmsg:
                            description: The certificate's status.
                            example: ok
                            type: string
                          user:
                            description: The username that stores the private key.
                            example: username
                            format: username
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Request best SSL certificate
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              fetch_best_for_domain \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/fetch_best_for_domain?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_fetch_best_for_domain.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_fetch_best_for_domain.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/fetch_best_for_domain/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_fetch_best_for_domain.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_fetch_best_for_domain.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'fetch_best_for_domain',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/fetch_cert_info:
    get:
      description: >-
        This function retrieves all of a certificate's available information.


        **Important:**


        * You **must** call either the `friendly_name` or `id` parameter.

        * When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server [roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: fetch_cert_info
      parameters:
        - description: The certificate's human readable name.
          in: query
          name: friendly_name
          required: true
          schema:
            example: TestCert
            type: string
        - description: The certificate's ID.
          in: query
          name: id
          required: true
          schema:
            example: >-
              example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_cert_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cabundle:
                            description: The CA bundle's contents (if applicable).
                            example: >-
                              -----BEGIN CERTIFICATE-----

                              MIIB+DCCArDgBwIBAgIEWXcZhjANBgkzpkiG6w0BAQsFADATMREwDwYDVRRZZAhu

                              ZXcxLnRsZDAeFw1yMDAyMDcxMzE7MTdaFw0yMTAyMDYxMzE4MTdaMBMxETAPBgEJ

                              BAMMCG5ldzEudGxkMIJBInANBgkqhkiG9w0BAQEFAAOKAR3AMIIBCgKCAQEA5n3Z

                              UoGCgH48vcbZfrWtnrak4yOZk/UN45gc8bZGmqbzd3qKmGXkm11aW1ID2YKGKYjL

                              mKt42HbXitlH6VhQcWviuYg+JIyTXDMLV0GiGpDT0uvde3YV21Ww2i5nzoFxWyVD

                              67oize5gvq9gaw5nVj6UyZ0baIB01QeJ5x52xZyuSgiS0ssWlA3rvHx8wG0+1trR

                              aBwU0cn1cXP3ZMKzKus/yAUH4lMBFf8jgDzEWIwfMI5HmzUjg2kOPJQlBtZ1u0bJ

                              GaKffWIMLs9Ux4p+f7FNeT/xJCHCTX7HpYDOyWwq109yHnD178NkywKoUvtx7f93

                              tTI821mltPbC1PQUgQIDAQABo4IBIjCCAR4wHQYDVR0OBBYEFLThoqhCEONRK3X1

                              FBgZ4gp+ESmJMAkGA1UdEwQCMAAwPgYDVR0jBDcwNYAUtOGiqEIQ41ErdfUUGBni

                              Cn4RKYmhF6QVMBMxETAPBgNVBAMMCG5ldzEudGxkggRZdxmGMB0GA1UdJQQWMBQG

                              CCsGAQUFBwMBBggrBgEFBQcDAjCBkgYDVR0RBIGKMIGHgghuZXcxLnRsZIINbWFp

                              bC5uZXcxLnRsZIIMd3d3Lm5ldzEudGxkgg9jcGFuZWwubmV3MS50bGSCEHdlYm1h

                              aWwubmV3MS50bGSCEHdlYmRpc2submV3MS50bGSCE2NwY29udGFjdHMubmV3MS50

                              bGSCFGNwY2FsZW5kYXJzLm5ldzEudGxkMA0GCSqGSIb3DQEBCwUAA4IBAQCT4AQM

                              wbwj3JEoQIJeP7RQyVe2/CPheqkSSajca1a3cUytwfRQ/m8DGM3L3WUZCaDEXYpJ

                              +nt7k6KetL6Fs03e1W7IDADt68ahiBLIqvxEGZ5uNUYqOiEWgfp3yKEDOjkLLvzU

                              GZb8FmNyeDoQ47b0mf0SRktG6W1rTMAg2kSDVoA7YNZStYvRzEliCX8cZqZ2as2d

                              ou95S+aGFAPJ+WMyYRgFm+ONAnpSbd9BursEcQSfLjKLusJzXrGVG9zZ/CAK2tHy

                              XIlFrj88r0q9AZKyFkh6O1XvaZBiI/UEOWS2H3zcnh5ywudze7jTj5eFz5hr0ubX

                              dji/LDNHmG+dKCK7

                              -----END CERTIFICATE-----
                            format: pem-certificate
                            nullable: true
                            type: string
                          certificate:
                            description: The certificate's contents.
                            example: >-
                              -----BEGIN CERTIFICATE-----

                              MIIDyDCCArDgBwIBAgIEWXcZhjANBgkzpkiG6w0BAQsFADATMREwDwYDVQQDDAhu

                              ZXcxLnRsZDAeFw1yMDAyMDcxMzE5MTdaFw0yMTAyMDYxMzE4MTdaMBMxETAPBgMB

                              BAMMCG5ldzEudGxkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5n3Z

                              UoGCgH48vcbZfrWtnrak4yOZk/UN45gc8bZGmqbzd3qKmGXkm11aW1ID2YKGKYjL

                              mKt42HbXitlH6VhQcWviuYg+JIyTXDMLV0GiGpDT0uvde3YV21Ww2i5nzoFxWyVD

                              67oize5gvq9gaw5nVj6UyZ0baIB01QeJ5x52xZyuSgiS0ssWlA3rvHx8wG0+1trR

                              aBwU0cn1cXP3ZMKzKus/yAUH4lMBFf8jgDzEWIwfMI5HmzUjg2kOPJQlBtZ1u0bJ

                              GaKffWIMLs9Ux4p+f7FNeT/xJCHCTX7HpYDOyWwq109yHnD178NkywKoUvtx7f93

                              tTI821mltPbC1PQUgQIDAQABo4IBIjCCAR4wHQYDVR0OBBYEFLThoqhCEONRK3X1

                              FBgZ4gp+ESmJMAkGA1UdEwQCMAAwPgYDVR0jBDcwNYAUtOGiqEIQ41ErdfUUGBni

                              Cn4RKYmhF6QVMBMxETAPBgNVBAMMCG5ldzEudGxkggRZdxmGMB0GA1UdJQQWMBQG

                              CCsGAQUFBwMBBggrBgEFBQcDAjCBkgYDVR0RBIGKMIGHgghuZXcxLnRsZIINbWFp

                              bC5uZXcxLnRsZIIMd3d3Lm5ldzEudGxkgg9jcGFuZWwubmV3MS50bGSCEHdlYm1h

                              aWwubmV3MS50bGSCEHdlYmRpc2submV3MS50bGSCE2NwY29udGFjdHMubmV3MS50

                              bGSCFGNwY2FsZW5kYXJzLm5ldzEudGxkMA0GCSqGSIb3DQEBCwUAA4IBAQCT4AQM

                              wbwj3JEoQIJeP7RQyVe2/CPheqkSSajca1a3cUytwfRQ/m8DGM3L3WUZCaDEXYpJ

                              +nt7k6KetL6Fs03e1W7IDADt68ahiBLIqvxEGZ5uNUYqOiEWgfp3yKEDOjkLLvzU

                              GZb8FmNyeDoQ47b0mf0SRktG6W1rTMAg2kSDVoA7YNZStYvRzEliCX8cZqZ2as2d

                              ou95S+aGFAPJ+WMyYRgFm+ONAnpSbd9BursEcQSfLjKLusJzXrGVG9zZ/CAK2tHy

                              XIlFrj88r0q9AZKyFkh6O1XvaZBiI/UEOWS2H3zcnh5ywudze7jTj5eFz5hr0ubX

                              dji/LDNHmG+dKCK7

                              -----END CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          is_self_signed:
                            description: |-
                              Whether the certificate is self-signed.
                              * `1` - Self-signed.
                              * `0` - **Not** self-signed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          key:
                            description: The private key.
                            example: >-
                              -----BEGIN RSA PRIVATE KEY-----

                              MIIEowIBAAKCAQEA5n3ZUoGCgH48vcbZfrYqnrak7yOZk/UN41gr8bZGmqbzd3qK

                              mGXkm11aW1ID2YKGKYjLmKt59HbXitlH6VhQcWviuYr+JIyTXDMLV0GiGpDT0uvd

                              e3YV21Ww2i5nzoFxWyVD67oize5gvq9gaw5nVj6UyZ0baIB01QeJ5x52xZyuSgiS

                              0ssWlA3rvHx8wG0+1trRaBwU0cn1cXP3ZMKzKus/yAUH4lMBFf8jgDzEWIwfMI5H

                              mzUjg2kOPJQlBtZ1u0bJGaKffWIMLs9Ux4p+f7FNeT/xJCHCTX7HpYDOyWwq109y

                              HnD178NkywKoUvtx7f93tTI821mltPbC1PQUgQIDAQABAoIBAEteX4/hFYFaxhXw

                              TfJnCgzaAHTdkTyWZyJC/UP0rIWpjfdFtMg8mVJMZl1yJhwb2C8AskKL34o44iZf

                              AmrFHBjahFrSuC9PYGhHsK+poI47SWixA815QZBlJt1RS1R1c1Gwj9MnHHZmOnBf

                              /JFFNnk3IYQDwZCcYJfATVGr3n6jLEGNwaPWFV6SHf0C4tCibSdNkkS1L/u+roHK

                              2dlmo84suwiqIYlxRCh0rZcvcx5ieF5Rj9g9t2ReYWCuEOMWuPcCfWoe4VngrmMX

                              V4I8NS1wtMR8qONJf4B9vcBA36296x1PZp3QEWU6hCd3TKpInKKxe6tOJA1iZ/H0

                              Kn0sYSECgYEA/W2zPsHKZDHnLN80MdiRFIPnmBvdNl2kPl244S9YFCHULowxx4YA

                              Mhz46dkm7VAFJdCTDZvKNZloPRG6N+Ouw2TP/gwnqZzVN2jt7+rpSYWp8s8kAASv

                              pmjnpGLlAZg8BBD/gafxfjEdyB7QEUF379o+0WTxCJrcE8n8UtTcXj0CgYEA6NSR

                              f1bXcfzCzLtkudEfyA9+u5mdENqoqasLfJsLzezeGFAYamQsnEEACWSbJvogHHZk

                              g/gKVuSzspLDWpJT96agmUFGKoBozJrOj2TpXfSI9uDaGo0/YJsPhnuPHab0jiO5

                              CjpCOAKMXaV9lbALRh4ALGiODDDud2rqzph815UCgYEA2ULKf+qzD+KYRSe1H2aC

                              Ogw653Q72Pe+bpj6flKQN/IobR9TLbH7SPr9ibzYWmpXf2uoJeqBGCJD8tbXxkIy

                              +N/cT/crqYUCZVZXZW8GQDmO0NI0Eq/xxb/5ljwSB6PzD6li4kyQA5cn6QBBcAmo

                              QL/hSrI20SGxumVXI8vIgCECgYAUJai9cx9LfsrAeoq5xY3Rev3FcAJ2XeVwYRuq

                              WaRI2nFRe0TRl/+AOeOt7GW8lrJGpDwIa2NBp6KhFjAPW1AmwuVsvYg7z0bCRbcQ

                              E3RaK/naGxTkbUqJqoFKatC0iSjqT88IQohOXnIU/GgEluoy1A/Bx/5asbVA4iCV

                              Zf6PjQKBgA0A3Q5lrWwuQlCXDiwsRLKSYEwgt5TFKfbiipB01m89PGd1ylz+Uzyn

                              iE01Cuar6yN9pJiTJ09Tmq3S2xxavY97KFHyu6R8/jHx4mZi9OMJfxffC+84q6d+

                              XVABiqBs1l0ebWCsotdXoYDDQaVrCccxPfCjUCtPmgnarz11uhZo

                              -----END RSA PRIVATE KEY-----
                            format: pem-private-key
                            type: string
                          subject.commonName_ip:
                            description: The IP address.
                            example: 192.168.0.1
                            format: ipv4
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return SSL certificate information
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              fetch_cert_info \
              id='example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3' \
              friendly_name='TestCert'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/fetch_cert_info?id=example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3&friendly_name=TestCert
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_fetch_cert_info.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_fetch_cert_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/fetch_cert_info/,
                {
                    'id' => 'example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3',
                    'friendly_name' => 'TestCert',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_fetch_cert_info.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_fetch_cert_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'fetch_cert_info',
                array (
                    'id' => 'example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3',
                    'friendly_name' => 'TestCert',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/fetch_certificates_for_fqdns:
    get:
      description: >-
        This function retrieves the certificate information for all fully
        qualified domain names (FQDNs) that the account owns.
      operationId: fetch_certificates_for_fqdns
      parameters:
        - description: >-
            A domain or comma-delimited list of domains for which to retrieve
            information.
          examples:
            multiple:
              summary: Multiple domains.
              value: domains=example1.com,example2.com
            single:
              summary: A single domain.
              value: example.com
          explode: false
          in: query
          name: domains
          required: true
          schema:
            type: string
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_certificates_for_fqdns
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            cab:
                              description: The CA bundle's contents.
                              example: >-
                                -----BEGIN CERTIFICATE-----

                                MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYD

                                VQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJv

                                b3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJV

                                UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQDExNHVEUgQ3liZXJU

                                cnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC45k+625h8cXyv

                                RLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH6X4M

                                ypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/5

                                1KiOQswkwB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKz

                                dcZfHeFhVYAA1IFLezEPI2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWl

                                IjeaY8JIILTbcuPI9tl8vrGvU9oUtCG41tWW4/5ODFlitppK+ULdjG+BqXH/9Apy

                                bW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY

                                -----END CERTIFICATE-----
                              format: pem-certificate
                              type: string
                            created:
                              description: When the certificate was created.
                              example: 1496950287
                              format: unix_timestamp
                              type: integer
                            crt:
                              description: The certificate's contents in Base64 PEM format.
                              example: >-
                                -----BEGIN CERTIFICATE-----

                                MIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ

                                c2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI

                                DAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy

                                MjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV

                                BAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G

                                CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P

                                Xx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fW

                                voK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/da

                                M3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC

                                +Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6

                                PLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj

                                UDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw

                                +wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA

                                A4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3Wh

                                cDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVw

                                FYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh

                                /SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2ag

                                qz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPa

                                Km6r7YmwfLN/YMZBHXSR58oOGP9W

                                -----END CERTIFICATE-----
                              format: pem-certificate
                              type: string
                            domain_is_configured:
                              description: >-
                                Whether the certificate is installed on the
                                account.

                                * `1` — Installed.

                                * `0` — Not installed.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            domains:
                              description: The domains that the CSR covers.
                              example:
                                - example.servername.com
                                - example.com
                                - mail.example.com
                                - www.example.com
                                - www.example.servername.com
                              items:
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: "The ECDSA curve that the certificate's key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The certificate's key is **not** an ECDSA key."
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: "The certificate's key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The certificate's key is **not** an ECDSA key."
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The certificate's friendly name.
                              example: Cert for example.servername.com
                              type: string
                            id:
                              description: The certificate's identification.
                              example: >-
                                example_servername_com_ce52d_6e643_2813308004_119580f9b01960cjones72bc519206bc
                              type: string
                            is_self_signed:
                              description: |-
                                Whether the certificate is self-signed.
                                - `1` — Self-signed.
                                - `0` — Not self-signed.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            issuer.commonName:
                              description: The name that issued the certificate.
                              example: example.servername.com
                              type: string
                            issuer.organizationName:
                              description: The certificate's organization.
                              example: Organization
                              type: string
                            issuer_text:
                              description: The certificate's issuer information.
                              example: >-
                                stateOrProvinceName\nTX\nlocalityName\nHouston\ncountryName\nUS\ncommonName\nexample.com\norganizationName\ncPanel
                              type: string
                            key:
                              description: The private key in Base64 PEM format.
                              example: >-
                                -----BEGIN RSA PRIVATE KEY-----

                                MIIJJwIBAAKCAgEA4yilqsoCdEpiNOyLcPJ4FLT7vgwaLdOBeJLTMUeV2uZM4v65/tiZe7H0soDp1C55SCr3uEIEa7Lq7RUZ+F5p67BgRR19rmerKGxfN7N5Vu97pfTwW1f+lVsxUF/56lVeoAmm4okU98xJHiGGlI8ZHGJbUMYfLPy0OrA+gNwMHqMVOv1BSgpbEWCILMvnvtp0rwPutjnPVX2Dj40ia40L4Wqvp+0Yg7mZyhIOl+q6VZVIdXZslR4ZywfRBYt3ieFBDYMyNw9wN3Xy44fCpHc77+ho84W3BqrGaWSSDyf6UkZGD5mfohGf2JSp+c8J6H7hsxo7pta3K1diVXFOSfnaA+k56zW445XruwYs/SN/zvGetGi6uqhMAcVRQcYCmLCixcC6RkcUx3exxgR4q3gthDnFvWC4+NuTh8/K0BcxcuCEhRug/MfVfO3+f7RJFSJPFb9m9Lf4HHBSVkDP5WtG4XiBKCe++9Wuvxbd4QxS7YrnSopNKxkuHKswH8ONpADMYDqfLODMhNrslHNHu95Nv7AlQr8weLqMGWMp7GFqzXcl39RnVkF4Bxd3bAAsMN8/JvanMKCPjTTDrfzVFZcmHXPYOljYDdY1xfIstYVtbyFkUHZP2RPPBaPUAt90lzrKGVF8a2vdIKRiey5SZ5qu9c/mGri3oz7Lkk7qkNPAqDMCAwEAAQKCAgA3f9raG3j2CKZt381Bzzvfc0h+al6LC736Q4Ut6RuH2/S1ER9IUItPWW87nZuDp8ciBr13W0nRNmmHezxZHlgqqXEb8dSfI90Bh1jMNyFSSDihl3KSHrGotBscVBavViREXZdUicGBuXuxtkYno96yvKUq2v0K9MLkA+OBgEHFynqJaw7klBsj573dlAQO8TjI+eD8zKsHbB8Ul5rtRAy/Cl3YXWk75cDZSggevc7A0jRd3o0w8aXDoSlEfYq7OTm3n3JJWZBFPKAXTzgTDr6qItJhjS4IxXsq7RNyeIYES/8aGKKT6lJvjALrcdYt47IpHCOu447lG/h+f6xtDophLGZoAirO7lJFRVfLJh76sLF12bpXJKbbmMN+aut0nM+MLEw8A5K9OV24jJ/3+afj//5789asIyvNaQFPOX23SdLX0QbA5QWvJt2tWvvpS3ubcIJaBEMTK8asEBC68eUW0BBKJaSiYNzecUFYCBjQlxKsIrYuWZoW6fMyRel+cnqMdiH7r2p6RmgF5c9myDwq3E47jE+VrOy8uhw7EMQvT8+YSKaIbgtFZcUSU02BDRB7gWNa842m6nGs5tj5xFNQ6Wt410vilTwL+6zCQqJaKmcdE3woiIgSdrw5MssAHHjqo7QJthZfbpUAUTc6jGPNO13U1ediIRAGdQW5ALqTwQKCAQEA884bmFFZLTewHIv1PJFfNxVZfk3C7LhWE2JcI/5P/YrN4ZA8G08OYhgxqa5XnsHHQPwMM85i1HeOoPwqgTMIyLDX/Sf88+eW3ef4V2M1Y4op0ahWFEwbwXKGxOhncElObN7dfZUwVlxCReaiw2XQAGRqtQC0f+9dZysqPJr+Rz6poTiOtm7DcpW/WiGfBPvVhzBENyqouL9V3vCWYPJSLtCexECoGoPSpHKgUkwbh3+ra8SfG6FOIBj4PpMB82R7oPDjIyXF1VDfb0EwYQlKxyZoP9+NPT2MhZv/hF/Mbm/5LolVHx92hO9q6yxS6nvaFmEPr9fY1EOTWzzPOA+VyQKCAQEA7oVioaTqxENt+wHITZq100iYUpm4X1N1eENTp97QyQbQOVR/t8iGLUdvOZdIxBSTS3JFQ8TNcGDPPc+o319QGdZABNnKwFGY3Ss+5QgVeX6n0WKdxCRelUOUB174aBeXcJCKplh6xBUrLfSZxvZQQb7fv0Mb+2eKUBKTymvES1kpYdn1T0vCCHA3bVpaHuqliCoDSX3RmQICZlfSgCGBbAkmU8RuxDd9yR9l7O9MXUmLsqlsw6hvbUt+7Y13YlDtyX8gbCwEEYsoALOotY1xNfXnyZKTAXhrg+xsQLrURYZUoZiCJyK/mHCWRTPVkt89wq4IexbJ9hqlRjzpmlr8GwKCAQBxRSCs855q06SOnrehHCkQfmrFs3sMX9gdyWTllBG1yfc9BLXoOiKEkJkCLG2o5H6eQnuo1go0jBdH0+ArhnpeQ0sV4q4y4zXEgzFt6Dm1tUsYjQzxASskBQF4GkF0eZpmGmTtI5MBjHt93llgTr0EcaLh1SIHDj5m4DcPUTMyBnro3E3xlCRZ6Biu10/6EMZzuIj42Gjq7HoIyd4TzIFCHsqkgyWWrAgBPwAdPB7OJRKPTxpcy+RwJSmwaLxPSC/n5gKhIbt4D8q+9Zp0esyzGbT1d/c2rJHMwV1FMvzXkk5CwKs7enKl8FXMTRt4tXHtU8rl93JVq8+aY/YiJZuBAoIBAERG2lz7IFjeFHVtpTDRwIqilTfP2P8wnMe4PhInrgxdbu16SrUJKZ98e1I5BBNc8G0AYONtSoGItMo0z1phpkQ/GERLM8aplOB6qJ5XGg6VOuStHgwvfQOtPIp/nQvu9OK7/XRwj3Phu2KESiCyEXdAdDwDsdbdZLJXHwcqoh4Pf9EK2zW/seNIfBVJb9K5yHiZzicTZRQvhxBUw2T6MloCpH4GFM8GM3OHEV4pgeqSSvLxnLjFVmAq5EKL5Ei4cdjkExvj3aZH90N8KicOPgH8SkVhN8OL/Prein5c/LaKJV+8kEUzpTS1xc45cEGCteMsfjD97QINzpG0jgopUVECggEADIaKsx8NUQT3hm0wHRanEFJnQH5HzxaQjWbsjm2uz0KROPNIK1X5L8kypsb+EzlJtvWUqxPaOaTv4DZVpFaVzk8/2PPGsYR3mUjqMqNFYMrNwYZAXvJ/huzDPqq6+w2Pn9jcAifHNw3S8UR650v8gl7BU4fVBvhamG8JelvwLqeGWoikST9NBXVqG5IKBpUkUiFOMUNmRih9ooKvhy7GosoK8MWbmhWo1v8TTSXSagACUhAoIzb6mMN/VFC5WDbFx5AEB/G9tq/zmTqQkuo39dvgl30wyZGRNwc1aFf1Kxeven10/JN9ipp0mTa7NYSdn0RAe9ZRp5cCkgmktqmB0g==

                                -----END RSA PRIVATE KEY-----
                              format: pem-private-key
                              type: string
                            key_algorithm:
                              description: |-
                                The certificate's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: "The length, in bits, of the certificate's key's modulus.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                              example: >-
                                ce52db786fd2776f69057ed8ee0d8ab267a2f328a66a3afd8

                                76017a99d061ec5d24d646f80ec258c696cb742e2bcd2fef920177144d9126a4

                                779c1a21ca5589ff06e673556116903493100dfba385a62d11aeec57f47e5b20

                                ad8d1142fbe93f003fb62403cdcc0012ccd407009ac21639623bc52a5d6d3814

                                ff9c45a7c246799f0229b4854af2aeddfa755ab13814132424f5b1680f2c357e

                                1476af7422bd5863102cfc5982b3ddad7fecdeae5c1cb73789008be9ce2f24fe

                                27c9202b3bca6524ba29a30972f14cbf06f0a1b7998c2361ed90221f40829faf

                                644adc7b8da6f948d8745ffbe8e5b6f0c8e7ea9ef2bc26413f90666ef1200407

                                eab7c3b71c6e643
                              nullable: true
                              type: string
                            modulus_length:
                              description: "The length, in bits, of the certificate's key's modulus.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                              example: 2048
                              minimum: 1
                              nullable: true
                              type: integer
                            not_after:
                              description: When the certificate expired.
                              example: 1528486286
                              format: unix_timestamp
                              type: integer
                            not_before:
                              description: When the certificate started.
                              example: 1496950286
                              format: unix_timestamp
                              type: integer
                            serial:
                              description: The certificate's serial number.
                              example: 01e57e4d92
                              type: string
                            signature_algorithm:
                              description: >-
                                The OID of the hash algorithm used to sign the
                                certificate request.
                              example: sha256WithRSAEncryption
                              type: string
                            subject.commonName:
                              description: The certificate's common name.
                              example: example.servername.com
                              format: domain
                              type: string
                            subject_text:
                              description: The certificate's subject text information.
                              example: >-
                                stateOrProvinceName\nTX\nlocalityName\nHouston\ncountryName\nUS\ncommonName\nexample.com\norganizationName\ncPanel
                              type: string
                            validation_type:
                              description: >-
                                The certificate's validation type.

                                * `ev` — Extended Validation.

                                * `ov` — Organization Validated.

                                * `dv` — Domain Validated.

                                * `null` —  The system could not parse and
                                determine the certificate's validation type.
                              example: dv
                              type: string
                            verify_error:
                              description: >-
                                A message that explains the reason for a
                                verification error.
                              example: DEPTH_ZERO_SELF_SIGNED_CERT
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return SSL certificate information for all FQDN
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              fetch_certificates_for_fqdns \
              domains='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/fetch_certificates_for_fqdns?domains=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_fetch_certificates_for_fqdns.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_fetch_certificates_for_fqdns.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/fetch_certificates_for_fqdns/,
                {
                    'domains' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_fetch_certificates_for_fqdns.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_fetch_certificates_for_fqdns.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'fetch_certificates_for_fqdns',
                array (
                    'domains' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /SSL/fetch_key_and_cabundle_for_certificate:
    post:
      description: >-
        This function extracts the private key and CA bundle information from a
        certificate.


        **Note:**


        Due to the limited field length of `HTTP GET` method calls, you **must**
        use the `HTTP POST` method. For this reason, you **cannot** use a cPanel
        or Webmail session URL to call this function.
      operationId: fetch_key_and_cabundle_for_certificate
      parameters:
        - description: An SSL certificate.
          in: query
          name: certificate
          required: true
          schema:
            example: >-
              -----BEGIN
              CERTIFICATE-----MIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQIDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYyMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNVBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3PXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fWvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/daM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6PLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGjUDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3WhcDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVwFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2agqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPaKm6r7YmwfLN/YMZBHXSR58oOGP9W-----END
              CERTIFICATE-----
            format: pem-certificate
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                certificate:
                  description: The certificate file.
                  format: pem-certificate
                  type: string
              type: object
        description: The certificate's contents.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: fetch_key_and_cabundle_for_certificate
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cab:
                            description: The CA bundle's contents (if applicable).
                            example: >-
                              -----BEGIN
                              CERTIFICATE-----MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQDExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswkwB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEPI2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGvU9oUtCG41tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY-----END
                              CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          crt:
                            description: The certificate's contents.
                            example: >-
                              -----BEGIN
                              CERTIFICATE-----MIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQIDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYyMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNVBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3PXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fWvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/daM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6PLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGjUDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3WhcDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVwFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2agqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPaKm6r7YmwfLN/YMZBHXSR58oOGP9W-----END
                              CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          crt_origin:
                            description: The username that generated the certificate.
                            example: username
                            format: username
                            type: string
                          domain:
                            description: The domain that generated the private key.
                            example: example.com
                            format: domain
                            type: string
                          ip:
                            description: The IP address.
                            example: 192.168.0.1
                            format: ipv4
                            type: string
                          key:
                            description: The private key.
                            example: >-
                              -----BEGIN RSA PRIVATE
                              KEY-----MIIJJwIBAAKCAgEA4yilqsoCdEpiNOyLcPJ4FLT7vgwaLdOBeJLTMUeV2uZM4v65/tiZe7H0soDp1C55SCr3uEIEa7Lq7RUZ+F5p67BgRR19rmerKGxfN7N5Vu97pfTwW1f+lVsxUF/56lVeoAmm4okU98xJHiGGlI8ZHGJbUMYfLPy0OrA+gNwMHqMVOv1BSgpbEWCILMvnvtp0rwPutjnPVX2Dj40ia40L4Wqvp+0Yg7mZyhIOl+q6VZVIdXZslR4ZywfRBYt3ieFBDYMyNw9wN3Xy44fCpHc77+ho84W3BqrGaWSSDyf6UkZGD5mfohGf2JSp+c8J6H7hsxo7pta3K1diVXFOSfnaA+k56zW445XruwYs/SN/zvGetGi6uqhMAcVRQcYCmLCixcC6RkcUx3exxgR4q3gthDnFvWC4+NuTh8/K0BcxcuCEhRug/MfVfO3+f7RJFSJPFb9m9Lf4HHBSVkDP5WtG4XiBKCe++9Wuvxbd4QxS7YrnSoKxkuHKswH8ONpADMYDqfLODMhNrslHNHu95Nv7AlQr8weLqMGWMp7GFqzXcl39RnVkF4Bxd3bAAsMN8/JvanMKCPjTTDrfzVFZcmHXPYOljYDdY1xfIstYVtbyFkUHZP2RPPBaPUAt90lzrKGVF8a2vdIKRiey5SZ5qu9c/mGri3oz7Lkk7qkNPAqDMCAwEAAQKCAgA3f9raG3j2CKZt381Bzzvfc0h+al6LC736Q4Ut6RuH2/S1ER9IUItPWW87nZuDp8ciBr13W0nRNmmHezxZHlgqqXEb8dSfI90Bh1jMNyFSSDihl3KSHrGotBscVBavViREXZdUicGBuXuxtkYno96yvKUq2v0K9MLkA+OBgEHFynqJaw7klBsj573dlAQO8TjI+eD8zKsHbB8Ul5rtRAy/Cl3YXWk75cDZSggevc7A0jRd3o0w8aXDoSlEfYq7OTm3n3JJWZBFPKAXTzgTDr6qItJhjS4IxXsq7RNyeIYES/8aGKKT6lJvjALrcdYt47IpHCOu447lG/h+f6xtDophLGZoAirO7lJFRVfLJh76sLF12bpXJKbbmMN+aut0nM+MLEw8A5K9OV24jJ/3+afj//5789asIyvNaQFPOX23SdLX0QbA5QWvJt2tWvvpS3ubcIJaBEMTK8asEBC68eUW0BBKJaSiYNzecUFYCBjQlxKsIrYuWZoW6fMyRel+cnqMdiH7r2p6RmgF5c9myDwq3E47jE+VrOy8uhw7EMQvT8+YSKaIbgtFZcUSU02BDRB7gWNa842m6nGs5tj5xFNQ6Wt410vilTwL+6zCQqJaKmcdE3woiIgSdrw5MssAHHjqo7QJthZfbpUAUTc6jGPNO13U1ediIRAGdQW5ALqTwQKCAQEA884bmFFZLTewHIv1PJFfNxVZfk3C7LhWE2JcI/5P/YrN4ZA8G08OYhgxqa5XnsHHQPwMM85i1HeOoPwqgTMIyLDX/Sf88+eW3ef4V2M1Y4op0ahWFEwbwXKGxOhncElObN7dfZUwVlxCReaiw2XQAGRqtQC0f+9dZysqPJr+Rz6poTiOtm7DcpW/WiGfBPvVhzBENyqouL9V3vCWYPJSLtCexECoGoPSpHKgUkwbh3+ra8SfG6FOIBj4PpMB82R7oPDjIyXF1VDfb0EwYQlKxyZoP9+NPT2MhZv/hF/Mbm/5LolVHx92hO9q6yxS6nvaFmEPr9fY1EOTWzzPOA+VyQKCAQEA7oVioaTqxENt+wHITZq100iYUpm4X1N1eENTp97QyQbQOVR/t8iGLUdvOZdIxBSTS3JFQ8TNcGDPPc+o319QGdZABNnKwFGY3Ss+5QgVeX6n0WKdxCRelUOUB174aBeXcJCKplh6xBUrLfSZxvZQQb7fv0Mb+2eKUBKTymvES1kpYdn1T0vCCHA3bVpaHuqliCoDSX3RmQICZlfSgCGBbAkmU8RuxDd9yR9l7O9MXUmLsqlsw6hvbUt+7Y13YlDtyX8gbCwEEYsoALOotY1xNfXnyZKTAXhrg+xsQLrURYZUoZiCJyK/mHCWRTPVkt89wq4IexbJ9hqlRjzpmlr8GwKCAQBxRSCs855q06SOnrehHCkQfmrFs3sMX9gdyWTllBG1yfc9BLXoOiKEkJkCLG2o5H6eQnuo1go0jBdH0+ArhnpeQ0sV4q4y4zXEgzFt6Dm1tUsYjQzxASskBQF4GkF0eZpmGmTtI5MBjHt93llgTr0EcaLh1SIHDj5m4DcPUTMyBnro3E3xlCRZ6Biu10/6EMZzuIj42Gjq7HoIyd4TzIFCHsqkgyWWrAgBPwAdPB7OJRKPTxpcy+RwJSmwaLxPSC/n5gKhIbt4D8q+9Zp0esyzGbT1d/c2rJHMwV1FMvzXkk5CwKs7enKl8FXMTRt4tXHtU8rl93JVq8+aY/YiJZuBAoIBAERG2lz7IFjeFHVtpTDRwIqilTfP2P8wnMe4PhInrgxdbu16SrUJKZ98e1I5BBNc8G0AYONtSoGItMo0z1phpkQ/GERLM8aplOB6qJ5XGg6VOuStHgwvfQOtPIp/nQvu9OK7/XRwj3Phu2KESiCyEXdAdDwDsdbdZLJXHwcqoh4Pf9EK2zW/seNIfBVJb9K5yHiZzicTZRQvhxBUw2T6MloCpH4GFM8GM3OHEV4pgeqSSvLxnLjFVmAq5EKL5Ei4cdjkExvj3aZH90N8KicOPgH8SkVhN8OL/Prein5c/LaKJV+8kEUzpTS1xc45cEGCteMsfjD97QINzpG0jgopUVECggEADIaKsx8NUQT3hm0wHRanEFJnQH5HzxaQjWbsjm2uz0KROPNIK1X5L8kypsb+EzlJtvWUqxPaOaTv4DZVpFaVzk8/2PPGsYR3mUjqMqNFYMrNwYZAXvJ/huzDPqq6+w2Pn9jcAifHNw3S8UR650v8gl7BU4fVBvhamG8JelvwLqeGWoikST9NBXVqG5IKBpUkUiFOMUNmRih9ooKvhy7GosoK8MWbmhWo1v8TTSXSagACUhAoIzb6mMN/VFC5WDbFx5AEB/G9tq/zmTqQkuo39dvgl30wyZGRNwc1aFf1Kxeven10/JN9ipp0mTa7NYSdn0RAe9ZRp5cCkgmktqmB0g==-----END
                              RSA PRIVATE KEY-----
                            format: pem-private-key
                            type: string
                          key_origin:
                            description: The username that generated the private key.
                            example: username
                            format: username
                            type: string
                          searched_users:
                            description: >-
                              The users that the system searched for certificate
                              information.
                            items:
                              example: username
                              format: username
                              type: string
                            type: array
                          status:
                            description: |-
                              Whether the certificate is active.
                              * `1` - Active.
                              * `0` - Inactive.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          statusmsg:
                            description: The certificate's status.
                            example: ok
                            type: string
                          user:
                            description: The username that stores the private key.
                            example: username
                            format: username
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return private key and CA bundle
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --input=json --output=jsonpretty \
              --user=username \
              SSL \
              fetch_key_and_cabundle_for_certificate
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: >+
            POST
            /cpsess##########/execute/SSL/fetch_key_and_cabundle_for_certificate
            HTTP/1.1

            Host: example.com:2083

            Cookie: ###################################

            Content-Type: application/json

            Content-Length: 0

      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/find_certificates_for_key:
    get:
      description: |-
        This function retrieves SSL certificates for a private key.

        **Note:**

        When you call this function, you **must** include either the `id`
        **or** the `friendly_name` parameter.
      operationId: find_certificates_for_key
      parameters:
        - description: The key's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestKey
            type: string
        - description: The key's ID.
          in: query
          name: id
          required: false
          schema:
            example: >-
              example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: find_certificates_for_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            created:
                              description: The date the certificate was created.
                              example: 1538308800
                              format: unix_timestamp
                              type: integer
                            domains:
                              description: >-
                                A list of the domains that the certificate
                                covers.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: >-
                                The ECDSA curve that the certificate's key uses.


                                * `prime256v1`

                                * `secp384r1`

                                * `null` — The certificate's key is **not** an
                                ECDSA key.
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: >-
                                The certificate's key's ECDSA compressed public
                                point, in hexadecimal format.


                                * `null` — The certificate's key is **not** an
                                ECDSA key.
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The certificate's friendly name.
                              example: TestCert
                              type: string
                            id:
                              description: The certificate's ID.
                              example: >-
                                example_com_a74f7_9dddf_1446659822_eae1ff43c4ec1991e195877c55755eff
                              type: string
                            is_self_signed:
                              description: |-
                                Whether the certificate is self-signed.

                                * `1` — Self-signed.
                                * `0` — Not self-signed.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            issuer.commonName:
                              description: The name that issued the certificate.
                              example: example.com
                              type: string
                            issuer.organizationName:
                              description: The certificate's organization name.
                              example: The Example Organization
                              type: string
                            issuer_text:
                              description: The certificate's issuer information.
                              example: "countryName\nUS\ncommonName\example.com\nlocalityName\nHouston\norganizationName\ncPanel\nstateOrProvinceName\ntx"
                              type: string
                            key_algorithm:
                              description: |-
                                The certificate's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: >-
                                The certificate's key's modulus, in hexadecimal
                                format.


                                * `null` — The certificate's key is **not** an
                                RSA key.
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                            modulus_length:
                              description: >-
                                The length, in bits, of the certificate's key's
                                modulus.


                                * `null` — The certificate's key is **not** an
                                RSA key.
                              example: 2048
                              nullable: true
                              type: integer
                            not_after:
                              description: The date the certificate expired.
                              example: 1569844800
                              format: unix_timestamp
                              type: integer
                            not_before:
                              description: The date the certificate started.
                              example: 1538308800
                              format: unix_timestamp
                              type: integer
                            signature_algorithm:
                              description: The certificate's signature OID hash algorithm.
                              example: sha256WithRSAEncryption
                              type: string
                            subject.commonName:
                              description: The certificate's Common Name.
                              example: example.com
                              type: string
                            subject_text:
                              description: The certificate's subject text information.
                              example: "countryName\nUS\ncommonName\example.com\nlocalityName\nHouston\norganizationName\ncPanel\nstateOrProvinceName\ntx"
                              type: string
                            validation_type:
                              description: "The certificate's validation type.\n\n* `ev` —\_Extended Validation.\n* `ov` —\_Organization Validation.\n* `dv` —\_Domain Validation.\n* `null` —\_The system could not parse and determine the\ncertificate's validation type."
                              enum:
                                - ev
                                - ov
                                - dv
                              example: dv
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return SSL certificate for private key
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              find_certificates_for_key
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/find_certificates_for_key
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_find_certificates_for_key.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_find_certificates_for_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/find_certificates_for_key/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_find_certificates_for_key.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_find_certificates_for_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'find_certificates_for_key'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/find_csrs_for_key:
    get:
      description: |-
        This function retrieves certificate signing requests (CSR) for
        a private key.

        **Note:**

        When you call this function, you **must** include either the `id`
        or the `friendly_name` parameter.
      operationId: find_csrs_for_key
      parameters:
        - description: The key's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestKey
            type: string
        - description: The key's ID.
          in: query
          name: id
          required: false
          schema:
            example: >-
              example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: find_csrs_for_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            commonName:
                              description: The CSR's common name.
                              example: example.com
                              format: domain
                              type: string
                            created:
                              description: The date the CSR was created.
                              example: 1538265600
                              format: unix_timestamp
                              type: integer
                            domains:
                              description: A list of the domains that the CSR covers.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: "The ECDSA curve that the CSR's key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The CSR's key is **not** an ECDSA key."
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: "The CSR's key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The CSR's key is **not** an ECDSA key."
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The CSR's friendly name.
                              example: TestCSR
                              type: string
                            id:
                              description: The CSR's ID.
                              example: >-
                                example_com_a74f7_9dddf_2c5d1615e85db817d6b640f65335fb62
                              type: string
                            key_algorithm:
                              description: |-
                                The CSR's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: "The CSR's key's modulus, in hexadecimal format.\n\n* `null` —\_The CSR's key is **not** an RSA key."
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return private key's certificate signing requests
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              find_csrs_for_key
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/find_csrs_for_key
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_find_csrs_for_key.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_find_csrs_for_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/find_csrs_for_key/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_find_csrs_for_key.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_find_csrs_for_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'find_csrs_for_key'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/generate_cert:
    get:
      description: >-
        This function generates a self-signed SSL certificate.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: generate_cert
      parameters:
        - description: The two-letter country code.
          in: query
          name: countryName
          required: true
          schema:
            example: US
            format: ISO-3166-1 (alpha-2)
            type: string
        - description: >-
            A comma-separated list of domains for which to generate the
            certificate.
          examples:
            multiple:
              summary: Generate certificates for multiple domains.
              value: domains=example1.com,example2.com,example3.com
            single:
              summary: Generate a certificate for a domain.
              value: example.com
          in: query
          name: domains
          required: true
          schema:
            format: domain
            type: string
        - description: The key's ID.
          in: query
          name: key_id
          required: true
          schema:
            example: >-
              example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
            type: string
        - description: The certificate's city or locality name.
          in: query
          name: localityName
          required: true
          schema:
            example: Houston
            type: string
        - description: The certificate's Organization Name.
          in: query
          name: organizationName
          required: true
          schema:
            example: Organization
            type: string
        - description: The two-letter state or locality abbreviation.
          in: query
          name: stateOrProvinceName
          required: true
          schema:
            example: TX
            type: string
        - description: An email address to associate with the certificate.
          in: query
          name: emailAddress
          required: false
          schema:
            default: ''
            example: username@example.com
            format: email
            type: string
        - description: >-
            A friendly name for the new certificate.


            This parameter defaults to the domain's name for which you generated
            the

            certificate.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestCert
            type: string
        - description: The certificate's organizational unit or department name.
          in: query
          name: organizationalUnitName
          required: false
          schema:
            default: ''
            example: Department
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: generate_cert
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          created:
                            description: The certificate's creation date.
                            example: 1538308800
                            format: unix_timestamp
                            type: integer
                          domains:
                            description: A list of domains that the certificate covers.
                            items:
                              example: example.com
                              format: domain
                              type: string
                            type: array
                          ecdsa_curve_name:
                            description: >-
                              The ECDSA curve that the certificate's key uses.


                              * `prime256v1`

                              * `secp384r1`

                              * `null` — The certificate's key is **not** an
                              ECDSA key.
                            enum:
                              - prime256v1
                              - secp384r1
                            example: null
                            nullable: true
                            type: string
                          ecdsa_public:
                            description: >-
                              The certificate's key's ECDSA compressed public
                              point, in hexadecimal format.


                              * null — The certificate's key is **not** an ECDSA
                              key.
                            example: null
                            nullable: true
                            type: string
                          friendly_name:
                            description: The certificate's friendly name.
                            example: TestCert
                            type: string
                          id:
                            description: The certificate's ID.
                            example: >-
                              example_com_a74f7_9dddf_1446659822_eae1ff43c4ec1991e195877c55755eff
                            type: string
                          is_self_signed:
                            description: |-
                              Whether the certificate is self-signed.

                              * `1` — Self-signed.
                              * `0` — Not self-signed.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          issuer.commonName:
                            description: The certificate's Common Name.
                            example: example.com
                            type: string
                          issuer.organizationName:
                            description: The certificate's Organization Name.
                            example: Organization
                            type: string
                          key_algorithm:
                            description: |-
                              The certificate's key's algorithm.

                              * `rsaEncryption` — RSA.
                              * `id-ecPublicKey` — ECDSA.
                            enum:
                              - rsaEncryption
                              - id-ecPublicKey
                            example: rsaEncryption
                            type: string
                          modulus:
                            description: >-
                              The certificate's key's modulus, in hexadecimal
                              format.


                              * `null` — The certificate's key is **not** an RSA
                              key.
                            example: >-
                              a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                            nullable: true
                            type: string
                          modulus_length:
                            description: >-
                              The length, in bits, of the certificate's key's
                              modulus.


                              * `null` — The certificate's key is **not** an RSA
                              key.
                            example: 2048
                            nullable: true
                            type: integer
                          not_after:
                            description: The date that the certificate expires.
                            example: 1569844800
                            format: unix_timestamp
                            type: integer
                          not_before:
                            description: The certificate's start date.
                            example: 1538308800
                            format: unix_timestamp
                            type: integer
                          serial:
                            description: The certificate's serial number.
                            example: 01e57e4d92
                            type: string
                          signature_algorithm:
                            description: The certificate's OID hash algorithm signature.
                            example: sha256WithRSAEncryption
                            type: string
                          subject.commonName:
                            description: The domain that issued the certificate.
                            example: example.com
                            format: domain
                            type: string
                          text:
                            description: The certificate's text.
                            example: >
                              -----BEGIN CERTIFICATE-----

                              MIIGBzCCA++gAwIBAgIFAeV+TZIwDQYJKoZIhvcNAQELBQAwUjELMAkGA1UECAwC

                              VFgxEDAOBgNVBAcMB0hvdXN0b24xCzAJBgNVBAYTAlVTMRMwEQYDVQQDDAptcmZy

                              b2cuY29tMQ8wDQYDVQQKDAZjUGFuZWwwHhcNMjAwNjA4MTUyNjA0WhcNMjEwNjA4

                              MTUyNjA0WjBSMQswCQYDVQQIDAJUWDEQMA4GA1UEBwwHSG91c3RvbjELMAkGA1UE

                              BhMCVVMxEzARBgNVBAMMCm1yZnJvZy5jb20xDzANBgNVBAoMBmNQYW5lbDCCAiIw

                              DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK/PpzRsms2ZZmA1EG2rNYZaAq2z

                              bhUGN6YMpugDwPL9xuqDwf0WUdoBjSBbty7rb5zMCZ+Ty3xHFAo15TLQXqtM0zIo

                              h/FRET9rtl6EuXFFFN+eAiV4GgZJVmVMmcgXNGgSjKZHhie5THkGJbwXXRxZryHN

                              QIeLlT7DttSwoAh9rEbk6hHKyyoQQ4rSkNXREUZTN3Gk7u7et8iYWl1FBkmJkFDJ

                              H4Ys678md7AiXndb4YkOQd2CEgoWXMaMLWJcFkdAmrIYhRmJvyp3BzF9hEkg+qPp

                              VEyIL/xVxScdxiFKGWbiHr10UiFt/0+g0gToyUXCmsfo01p0oqrk4qRSZMnUtfdX

                              W06vvD64x4Z4M4Jh5WqzVEXEdppzJx09Z7MBK6GLN82pV46x8jp87cBL1LZrpWDinerx+6Vr7YC62itfp6aJ2q6vkxCh4u8T6EjPEcpZAEh5SiQZaOLhAlqgt/lwPpuCW

                              Q7LEi/Vg4aG3yb/z8e2BvRK5nnCHd7OOZqg7HJ9UnrzFxeQ8KyvcxP+oYD3h0EvZ

                              1zVTbJDLbYuohqbLts3Skuk1hT9HoeWqrmzn2XkoU8LkvzCcRT0oG40BfFr4z7Zz

                              sKfG9Z4e06kb1YAPrSqd9w/iI1Ej8cRhBBlowYFq9RjNlkjJCwKlxzynNAJjoQ5W

                              U5NJzKjUz6ChHAAtAgMBAAGjgeMwgeAwHQYDVR0OBBYEFFczMNVfcxDsyk27GfjD

                              C0Z1Yv+mMAkGA1UdEwQCMAAwfgYDVR0jBHcwdYAUVzMw1V9zEOzKTbsZ+MMLRnVi

                              /6ahVqRUMFIxCzAJBgNVBAgMAlRYMRAwDgYDVQQHDAdIb3VzdG9uMQswCQYDVQQG

                              EwJVUzETMBEGA1UEAwwKbXJmcm9nLmNvbTEPMA0GA1UECgwGY1BhbmVsggUB5X5N

                              kjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwFQYDVR0RBA4wDIIKbXJm

                              cm9nLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEArbNqSdABFWy8NbpDGDAoi2rpw/aM

                              Wu18iEAHmPg9YekIngNpxZg4b8SB4jrNSSqB0pK8asckxmAcho/pnAx4rOFibftd

                              DmGzYxGN9h60JkVToWSn3UQ/0dbqfhfTbGiQvJHTNqB3pQVvWenMFRz9XEcpMDUj

                              7UKR8v2xe5Y25yvNPVezYF2/x85awlOoSa00UlKgqh0OU+iuzQZ9T3wtk5uvlc7Z

                              IEzBseIn3Kp/WG3P64Rxn95YT6QssKJ+pZ412yKM7vKdcuglNLTv5cx4ffKFN1jm

                              anCmPXgYsUdAazmZVSjVuVN7d2+NL+SDVczZCdJ2Vhk5DPqv8ZnHUF7MT+K6vtQd

                              J16+pszCF55t9w5uPqur67/R00dCWLpxvHRRF8J+2Xverhmex5kR6a1nUlbP1oOP

                              Vq+EmcAL0PP6qdDr8fkjgvNyX7hT+cuiPBbxpY6XfDSlat5+5T2lJ1Ny6GWhBnaR

                              35g3EF8ysu3AYQnDwtZrOrEa08lDN3mbrkT3ImSa5oZKgOrlpCZ0dzi8p4wSrboq

                              9eZyqikEvuudz+VeQf1WR/6/FsyRq2PEtjgX1atWZiPfatN5f1YVxcElTvuMzyOP

                              ZXjpUs8MO+CHF1FwtKm52NNItIlnUY7KPpFU8L+oa8O2BMr91wi8NpTR2gd0F+jH

                              21NkfEM7YlXzgMw=

                              -----END CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          validation_type:
                            description: The certificate's validation type, if one exists.
                            example: null
                            nullable: true
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        items:
                          example: Certificate generated
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create self-signed SSL certificate
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              generate_cert \
              domains='example.com' \
              countryName='US' \
              stateOrProvinceName='TX' \
              localityName='Houston' \
              organizationName='Organization' \
              key_id='example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/generate_cert?domains=example.com&countryName=US&stateOrProvinceName=TX&localityName=Houston&organizationName=Organization&key_id=example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_generate_cert.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_generate_cert.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/generate_cert/,
                {
                    'domains' => 'example.com',
                    'countryName' => 'US',
                    'stateOrProvinceName' => 'TX',
                    'localityName' => 'Houston',
                    'organizationName' => 'Organization',
                    'key_id' => 'example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_generate_cert.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_generate_cert.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'generate_cert',
                array (
                    'domains' => 'example.com',
                    'countryName' => 'US',
                    'stateOrProvinceName' => 'TX',
                    'localityName' => 'Houston',
                    'organizationName' => 'Organization',
                    'key_id' => 'example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/generate_csr:
    get:
      description: >-
        This function generates a certificate signing request (CSR).


        **Note:**


        This function **requires** a valid key in the account's `ssl` directory.

        You can generate a key with UAPI's `SSL::generate_key` function.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and WebServer
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: generate_csr
      parameters:
        - description: The two-letter country code.
          in: query
          name: countryName
          required: true
          schema:
            example: US
            format: ISO-3166-1 (alpha-2)
            type: string
        - description: >-
            A comma-separated list of the domains for which to generate the
            certificate.
          examples:
            multiple:
              summary: Generate a certificate for multiple domains.
              value: domains=example-1.com,example-1.com,example-2.com
            single:
              summary: Generate a certificate for a single domain.
              value: example.com
          in: query
          name: domains
          required: true
          schema:
            type: string
        - description: The key's ID.
          in: query
          name: key_id
          required: true
          schema:
            example: >-
              example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
            type: string
        - description: The certificate's city or locality name.
          in: query
          name: localityName
          required: true
          schema:
            example: Houston
            type: string
        - description: The certificate's organization.
          in: query
          name: organizationName
          required: true
          schema:
            example: Organization
            type: string
        - description: The certificate's state or locality name.
          in: query
          name: stateOrProvinceName
          required: true
          schema:
            example: Texas
            type: string
        - description: An email address to associate with the certificate.
          in: query
          name: emailAddress
          required: false
          schema:
            default: ''
            example: username@example.com
            format: email
            type: string
        - description: >-
            A friendly name for the new certificate.


            This parameter defaults to the domain name for which you generated
            the

            certificate.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestCert
            type: string
        - description: The certificate's organizational unit or department name.
          in: query
          name: organizationalUnitName
          required: false
          schema:
            default: ''
            example: Department
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: generate_csr
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          commonName:
                            description: The name that issued the CSR.
                            example: example.com
                            type: string
                          created:
                            description: The date the CSR was created.
                            example: 1569884400
                            format: unix_timestamp
                            type: integer
                          domains:
                            description: The domains that the CSR covers.
                            items:
                              example: example.com
                              format: domain
                              type: string
                            type: array
                          ecdsa_curve_name:
                            description: |-
                              The ECDSA curve that the CSR's key uses.

                              * `prime256v1`
                              * `secp384r1`
                              * `null` — The CSR's key is **not** an ECDSA key.
                            enum:
                              - prime256v1
                              - secp384r1
                            example: null
                            nullable: true
                            type: string
                          ecdsa_public:
                            description: >-
                              The CSR's key's ECDSA compressed public point, in
                              hexadecimal format.


                              * `null` — The CSR's key is **not** an ECDSA key.
                            example: null
                            nullable: true
                            type: string
                          friendly_name:
                            description: The CSR's friendly name.
                            example: TestCSR
                            type: string
                          id:
                            description: The CSR's ID.
                            example: >-
                              example_com_a74f7_9dddf_1446659822_eae1ff43c4ec1991e195877c55755eff
                            type: string
                          key_algorithm:
                            description: |-
                              The CSR's key's algorithm.

                              * `rsaEncryption` — RSA.
                              * `id-ecPublicKey` — ECDSA.
                            enum:
                              - rsaEncryption
                              - id-ecPublicKey
                            example: rsaEncryption
                            type: string
                          modulus:
                            description: |-
                              The CSR's key's modulus, in hexadecimal format.

                              * `null` — The CSR's key is **not** an RSA key.
                            example: >-
                              a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                            nullable: true
                            type: string
                          text:
                            description: The CSR's text.
                            example: >-
                              -----BEGIN CERTIFICATE REQUEST-----

                              MIIC3TCCAcUCAQAwgZcxFDASBgNVBAMMC2V4YW1wbGUuY29tMRYwFAYDVQQLDA1E

                              b2N1bWVudGF0aW9uMQswCQYDVQQGEwJVUzEiMCAGCSqGSIb3DQEJARYTbGF1cmVu

                              Y2VAY3BhbmVsLm5ldDEUMBIGA1UECgwLY1BhbmVsIEluYy4xDjAMBgNVBAgMBVRl

                              eGFzMRAwDgYDVQQHDAdIb3VzdG9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB

                              CgKCAQEAp092NvpqyT7mg2qDqZW1XetQGeo217o9r7AOONaTrNsMgbL/d31rQzpC

                              D65SPxJ/NSpovMi48tbue3A5W6+r2CN62oFk/d34N2swN1w11NTLzOfTPQgGnBe0

                              CRdqNonx68l8Cwj+auRMGakqxtaESOfx0T87Ngr/1CIqUbTzU0LembWh+1VI5Djy

                              2CRmRWKkSAAu7X/OJN7cfcPh7ReZc9Ha6VmzNxbutBDRcnCJVOAGMsv2Cg4mQZhg

                              yMC8KF1r/ktHneDdGJdypdrmdr0qkqzMwTaYIb6M/93Yp+bswGH4oyqa4GYeTpRu

                              2OOCeydxONOnYRZWfL0SnL2Gnvnd3wIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEB

                              AFlolzJbcviWcdZUv+PJ7G8cAqFAxa8a3W2a0Y1U0BaMrpDfuOHpQgOtO62rr+i+

                              hkrIReuk7Isyl6GoZkX17KhQ1Vo9aW8a8Ur7+0RGDbxRlK9jJWnvSFn6cMMqRSfA

                              DXpptxhqBFZJIZMc3pPX9Jqycuu8bxeIvUKeSMe3Jxcl1ZXEXX47FeRZxvd+WXF9

                              4Xu4KZXHdzb5tB6jPhzIaN0/3d92N/KhvCcnw3YC2fEGDkpOlZaoa7O72+aq5K3b

                              M1htFv9deAHqIHefV41iOrxUCIKIhdPIjvAm774lDHLzPpJVrshO/NpA74LEkny5

                              FMwKKx+6Jgx1HSWucn5kWek=

                              -----END CERTIFICATE REQUEST-----
                            format: pem-certificate-request
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example:
                          - Certificate Signing Request generated!
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create certificate signing request
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              generate_csr \
              domains='example.com' \
              countryName='US' \
              stateOrProvinceName='Texas' \
              localityName='Houston' \
              organizationName='Organization' \
              key_id='example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/generate_csr?domains=example.com&countryName=US&stateOrProvinceName=Texas&localityName=Houston&organizationName=Organization&key_id=example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_generate_csr.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_generate_csr.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/generate_csr/,
                {
                    'domains' => 'example.com',
                    'countryName' => 'US',
                    'stateOrProvinceName' => 'Texas',
                    'localityName' => 'Houston',
                    'organizationName' => 'Organization',
                    'key_id' => 'example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_generate_csr.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_generate_csr.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'generate_csr',
                array (
                    'domains' => 'example.com',
                    'countryName' => 'US',
                    'stateOrProvinceName' => 'Texas',
                    'localityName' => 'Houston',
                    'organizationName' => 'Organization',
                    'key_id' => 'example_com_cb497_a394d_1397249671_d1272da8f13a1fd837493a5ad1f0a0f3',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/generate_key:
    get:
      description: >-
        This function generates a private key.


        **Important:**


        * You **cannot** call both the `keytype` and `keysize` parameters in a
        single call.

        * When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, **and**

        Web Server [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: SSL-generate_key
      parameters:
        - description: >-
            A friendly name for the new key.


            This parameter defaults to the key's type, creation date, and
            creation time.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestKey
            type: string
        - deprecated: true
          description: |-
            The key's modulus size.

            **Note:**

            Use the `keytype` parameter.
          in: query
          name: keysize
          required: false
          schema:
            default: 2048
            example: 2048
            type: integer
        - description: >-
            The key's type.


            * `system` — The system's default value.

            * `rsa-2048` — 2,408-bit RSA.

            * `rsa-4096` — 4,096-bit RSA.

            * `ecdsa-prime256v1` — ECDSA prime256v1 ("P-256").

            * `ecdsa-secp384r1` — ECDSA secp384r1 ("P-384").


            This parameter defaults to the user's

            [default SSL/TLS key
            type](https://go.cpanel.net/cpaneldocsSSLTLS#default-ssl-tls-key-type).


            **Note:**


            If you do **not** use this parameter, the system defaults to the
            `keysize` parameter's default value.
          in: query
          name: keytype
          required: false
          schema:
            enum:
              - system
              - rsa-2048
              - rsa-4096
              - ecdsa-prime256v1
              - ecdsa-secp384r1
            example: rsa-2048
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: generate_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          created:
                            description: The key's creation date.
                            example: 1601467200
                            format: unix_timestamp
                            type: integer
                          ecdsa_curve_name:
                            description: |-
                              The ECDSA curve that the key uses.

                              * `prime256v1`
                              * `secp384r1`
                              * `null` — The key is **not** an ECDSA key.
                            enum:
                              - prime256v1
                              - secp384r1
                            example: null
                            nullable: true
                            type: string
                          ecdsa_public:
                            description: >-
                              The key's ECDSA compressed public point, in
                              hexadecimal format.


                              * `null` — The key is **not** an ECDSA key.
                            example: null
                            nullable: true
                            type: string
                          friendly_name:
                            description: The key's friendly name.
                            example: TestKey
                            type: string
                          id:
                            description: The key's ID.
                            example: >-
                              example_com_a74f7_9dddf_1446659822_eae1ff43c4ec1991e195877c55755eff
                            type: string
                          key_algorithm:
                            description: |-
                              The key's algorithm.

                              * `rsaEncryption` — RSA.
                              * `id-ecPublicKey` — ECDSA.
                            enum:
                              - rsaEncryption
                              - id-ecPublicKey
                            example: rsaEncryption
                            type: string
                          modulus:
                            description: |-
                              The key's modulus, in hexadecimal format.

                              * `null` — The key is **not** an RSA key.
                            example: >-
                              a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                            nullable: true
                            type: string
                          modulus_length:
                            description: |-
                              The length, in bits, of the key's modulus.

                              * `null` — The key is **not** an RSA key.
                            example: 2048
                            nullable: true
                            type: integer
                          text:
                            description: The key's contents.
                            example: >-
                              -----BEGIN RSA PRIVATE KEY-----

                              MIIEowIBAAKCAQEAyeiHvMuJuVk8ZEY6wMzUS1g0eWaHaIWmIRe+Qrn6SwiRrm1p

                              psJCiGPPPQGOSg4FzrMXqE0zsi/Tk3hUO/EEsi7CcZe8cUanjlUeXhiwrb86FCMF

                              Ob9siRHQvlss7VCg8ZGXXTWZgf5yD3A1xPwdayYwF2Tc7GkNcZGUAI58geuYaq+U

                              GiLczRGZep1IQ0b1cZnqDvGMx6AS6hiDqLISjnmXYY2OhG6Uyp+SuinjYzLPJ6eO

                              N/7i9qqbcGmt0ssddmhR897+bTEom5SlSuyi03KZ9Rn4ZmNJgOsup9MclSBGxBys

                              b6MuuM3N0/tF5QuwmDc8H6h2rNBP9vGV7RTTXQIDAQABAoIBAFS/WVoRRLmbjxG3

                              uKl8UA9f8oaSVnu0vUpeoOl5Dmm4Kw2/tvzbxPlii3Xb1VGYGS/tVBy8atp74J6h

                              fxm5zHLN1afAPMR/F41ShPCSBHapMUOKf4MBqhjOdYOw2Way1RsQNSxWdxxtJIr+

                              WlNYTzDOUpk/KMvCPHZS2IBzTidpcFpDQ3pyDXjOoKJJH0EQWPtvxJNGrFqmU29D

                              9WBqQemHnDrzg3s7JzQ5cGpbbCE+QX8IckNkslAkyhm771CtqWdeo+c45e6YfGcx

                              KuAy1zGSVzQBuitzYoMUOL5olXLEj8fHzXd/cZP4yCyyabcGz2vi6luxF+28l1OL

                              G1axyLECgYEA+bD5B+Y/Dp5hZ/uVR1bbvyraQpwbDesS1zgnJ53KOIl926dnWzIt

                              UvM46+c9IF+UJrtzwIB6IvjAQioNFrK36bHgNGzNf9WQ54NN172qveaFLdW34z/i

                              GR2ix/efm9OC41QREQ/5IKV07TibCwVazVBWascMPkH7FnguTvTCiosCgYEAzwJ+

                              GPlIWjK+sqkK5JMUyuH43qAvgVfkZV906JpNRQH0Mob3bC0nXN95EoTwWXk68ULT

                              o1GHv9XLbj8e+Ok7kpJQZT5vEZnDN+cy3jdTLCvcjU5Q3ToImOTp9isSAFWRTbtk

                              yabLNoIIsTR/ZwwPFTZcRiK2d8k7ZhcRKdfGnrcCgYAPZ06FoTukoDqsGoYkB4S4

                              72DVmSHGIwlfg5ROylouULUV9ubWZmsLYfvR+cr4k0zlcsz6RDLEs4nQyx1RmCbm

                              YNXPBiNLTpaI4b3MoGPHIVB3+mZEu60sFXr0UR9kkpDRi18eKVkaHXrwI3zVGjh2

                              0Az0u2DS+mkOAs4AivLxbwKBgQC0XPqbLc+Bb0dCCREJmLD8GCkrZ6wcaQUB4krN

                              Q2vhnVM0Fu5K3Yi3XapynUuA2aSmgtA9MxMw7MkjlHGa9DPIgBz2KZDCaBN0iMeE

                              X/XivZCbucmxBxhohsLmjh5QFj3U2Vp2bBIQuvlx1EjQ8uvNUqDRJvuOoNFVIPH+

                              YBeZPwKBgA//kXfNtNMHOpch699i3rgTzbRFDmGwsr1otzvJsXw7Pr2bM4WIzUJy

                              G2SUSUlQRSZK4+BBKT9S0d7TynJD6X/6R7IBotZbfXs1myYxEsKj89/BQmr47x2h

                              HjYVCClNoJlsbd5C2yu1R3PikweWGoVaxE3c+AN5knqjwJ0g21Cf

                              -----END RSA PRIVATE KEY-----
                            format: pem-private-key
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create private key
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              generate_key
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/generate_key
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_generate_key.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_generate_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/generate_key/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_generate_key.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_generate_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'generate_key'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/get_autossl_excluded_domains:
    get:
      description: This function lists the domains with AutoSSL disabled.
      operationId: get_autossl_excluded_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_autossl_excluded_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects that include domain's AutoSSL
                          information.
                        items:
                          properties:
                            excluded_domain:
                              description: A domain that has AutoSSL disabled.
                              example: example.com
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return AutoSSL disabled domains
      tags:
        - SSL
        - Auto-generated SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              get_autossl_excluded_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/get_autossl_excluded_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_get_autossl_excluded_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_get_autossl_excluded_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/get_autossl_excluded_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_get_autossl_excluded_domains.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_get_autossl_excluded_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'get_autossl_excluded_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /SSL/get_autossl_problems:
    get:
      description: >-
        This function retrieves a list of domains that possess AutoSSL problems.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: get_autossl_problems
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_autossl_problems
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            domain:
                              description: The certificate's hostname.
                              example: example.com
                              format: domain
                              type: string
                            problem:
                              description: text description of the problem.
                              example: >-
                                example.com contains 400 domains, which exceeds
                                the maximum number (200) of domains allowed for
                                the "Sectigo" AutoSSL provider. This system will
                                include those 200 domains on the certificate
                                that appear to be the website's most important.
                                To allow AutoSSL to secure each domain, divide
                                the 400 domains among separate websites. (The
                                websites can all serve the same content from the
                                same document root.)
                              type: string
                            time:
                              description: When the problem occurred.
                              example: '2018-06-07T05:30:09.000Z'
                              format: ISO-8601 Date Time
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains with AutoSSL problems
      tags:
        - SSL
        - Auto-generated SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              get_autossl_problems
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/get_autossl_problems
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_get_autossl_problems.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_get_autossl_problems.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/get_autossl_problems/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_get_autossl_problems.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_get_autossl_problems.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'get_autossl_problems'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 68
  /SSL/get_cabundle:
    get:
      description: >-
        This function retrieves a certificate's Certificate Authority (CA)
        bundle and hostname.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server [roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: get_cabundle
      parameters:
        - description: The certificate's text.
          in: query
          name: cert
          required: true
          schema:
            example: >-
              -----BEGIN
              CERTIFICATE-----\r\nMIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ\r\nc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI\r\nDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy\r\nMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV\r\nBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G\r\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P\r\nXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fW\r\nvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/da\r\nM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC\r\n+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6\r\nPLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj\r\nUDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw\r\n+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA\r\nA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3Wh\r\ncDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVw\r\nFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh\r\n/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2ag\r\nqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPa\r\nKm6r7YmwfLN/YMZBHXSR58oOGP9W\r\n-----END
              CERTIFICATE-----
            format: pem-certificate
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_cabundle
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          bundle:
                            description: The CA bundle's tag.
                            example: VeriSign Trial Secure Server CA - G2
                            type: string
                          cab:
                            description: The CA bundle's contents.
                            example: >-
                              -----BEGIN CERTIFICATE-----
                              MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYD
                              VQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJv
                              b3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJV
                              UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQDExNHVEUgQ3liZXJU
                              cnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC45k+625h8cXyv
                              RLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH6X4M
                              ypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/5
                              1KiOQswkwB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKz
                              dcZfHeFhVYAA1IFLezEPI2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWl
                              IjeaY8JIILTbcuPI9tl8vrGvU9oUtCG41tWW4/5ODFlitppK+ULdjG+BqXH/9Apy
                              bW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY -----END
                              CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          domain:
                            description: The certificate's hostname.
                            example: example.com
                            format: domain
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return certificate's CA bundle and hostname
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username SSL get_cabundle
            cert='-----BEGIN
            CERTIFICATE-----\r\nMIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ\r\nc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI\r\nDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy\r\nMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV\r\nBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G\r\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P\r\nXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fW\r\nvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/da\r\nM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC\r\n+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6\r\nPLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj\r\nUDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw\r\n+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA\r\nA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3Wh\r\ncDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVw\r\nFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh\r\n/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2ag\r\nqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPa\r\nKm6r7YmwfLN/YMZBHXSR58oOGP9W\r\n-----END
            CERTIFICATE-----'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/get_cabundle?cert=-----BEGIN%20CERTIFICATE-----%5cr%5cnMIIDcTCCAlmgAwIBAgIFAU%2bBNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ%5cr%5cnc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI%5cr%5cnDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy%5cr%5cnMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV%5cr%5cnBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G%5cr%5cnCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P%5cr%5cnXx3YHsjFEWW7e5pH0vZ%2bjVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD%2bo9fW%5cr%5cnvoK1tWJS72FSgPju%2b58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri%2fda%5cr%5cnM3PBWO8ET48FWkyU1kOeZaUlF67%2f%2bwrEiNgg%2bt1qhKOCAB61PdNVkLaSGHimksuC%5cr%5cn%2bCzk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB%2fF9ORe74yTzD%2bvlk0tFMG6%5cr%5cnPLj%2fajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3%2fmgvit0v6dAgMBAAGj%5cr%5cnUDBOMB0GA1UdDgQWBBRw%2bwKBo34%2bbgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw%5cr%5cn%2bwKBo34%2bbgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH%2fMA0GCSqGSIb3DQEBBQUA%5cr%5cnA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7%2f6DQ%2fI3hv3Wh%5cr%5cncDDIO04I2%2fXhe88MLBaLoM367Ya%2bvy7CaLr14aLi%2fSfQszMA0ALBvMao%2bFis0iVw%5cr%5cnFYq%2fNLgSXw%2bfgnpFskt8v8iQZ%2b4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh%5cr%5cn%2fSD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ%2bEioo3hhgwNavH2ag%5cr%5cnqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy%2f4oQNdg6fOq4l%2fFrajBv%2bWkzDVPa%5cr%5cnKm6r7YmwfLN%2fYMZBHXSR58oOGP9W%5cr%5cn-----END%20CERTIFICATE-----
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_get_cabundle.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_get_cabundle.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/get_cabundle/,
                {
                    'cert' => '-----BEGIN CERTIFICATE-----\r\nMIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ\r\nc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI\r\nDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy\r\nMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV\r\nBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G\r\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P\r\nXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fW\r\nvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/da\r\nM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC\r\n+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6\r\nPLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj\r\nUDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw\r\n+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA\r\nA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3Wh\r\ncDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVw\r\nFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh\r\n/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2ag\r\nqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPa\r\nKm6r7YmwfLN/YMZBHXSR58oOGP9W\r\n-----END CERTIFICATE-----',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_get_cabundle.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_get_cabundle.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'get_cabundle',
                array (
                    'cert' => '-----BEGIN CERTIFICATE-----\r\nMIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ\r\nc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI\r\nDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy\r\nMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV\r\nBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G\r\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P\r\nXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fW\r\nvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/da\r\nM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC\r\n+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6\r\nPLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj\r\nUDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw\r\n+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA\r\nA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3Wh\r\ncDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVw\r\nFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh\r\n/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2ag\r\nqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPa\r\nKm6r7YmwfLN/YMZBHXSR58oOGP9W\r\n-----END CERTIFICATE-----',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/get_cn_name:
    get:
      description: This function retrieves the most secure domain for a service.
      operationId: get_cn_name
      parameters:
        - description: A domain name, cPanel username, or email address.
          example: example.com
          in: query
          name: domain
          required: true
          schema:
            anyOf:
              - description: A valid domain.
                format: domain
                type: string
              - description: A valid email address.
                format: email
                type: string
              - description: A valid cPanel username.
                format: username
                type: string
        - description: |-
            The service's name.

            * `cpanel`
            * `imap`
            * `pop3`
            * `smtp`
          in: query
          name: service
          required: true
          schema:
            enum:
              - cpanel
              - imap
              - pop3
              - smtp
            example: cpanel
            type: string
        - description: >-
            Whether to append `mail` to the `domain` value to find the best
            match.


            For example, if you specify the domain `example.com` and call this
            parameter, the

            function only searches the `mail.example.com` service domains.


            * `1` — Append `mail` to the `domain` value during the search.

            * `0` — Match on the specified `domain` value **only**.
          in: query
          name: add_mail_subdomain
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_cn_name
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cert_match_method:
                            description: >-
                              The method that the system used to match the
                              certificate with the mail

                              service.


                              * `none` — No domain matches the certificate.

                              * `exact` — The domain exactly matches the
                              certificate.

                              * `exact-wildcard` — The domain exactly matches
                              the certificate.

                              * `mail-wildcard` — The `mail` subdomain of the
                              domain matches the domain of the wildcard
                              certificate.

                              * `www-wildcard` — The `www` subdomain of the
                              domain matches the domain of the wildcard
                              certificate.

                              * `hostname-wildcard` — The hostname's domain
                              matches the domain of the wildcard certificate.

                              * `hostname` — The hostname matches the domain of
                              the certificate.

                              * `localdomain_on_cert-mail-wildcard` — A `mail`
                              subdomain of a domain on the server that matches
                              the certificate.

                              * `localdomain_on_cert-www-wildcard` — A `www`
                              subdomain of a domain on the server matches the
                              certificate.

                              * `localdomain_on_cert` — A domain on the server
                              matches the certificate.
                            enum:
                              - none
                              - exact
                              - exact-wildcard
                              - mail-wildcard
                              - www-wildcard
                              - hostname-wildcard
                              - hostname
                              - localdomain_on_cert-mail-wildcard
                              - localdomain_on_cert-www-wildcard
                              - localdomain_on_cert
                            example: hostname
                            type: string
                          cert_valid_not_after:
                            description: The certificate's expiration date.
                            example: 1394288638
                            format: unix_timestamp
                            type: integer
                          is_currently_valid:
                            description: "Whether the certificate is currently valid.\n\n* `1` —\_Valid.\n* `0` —\_Invalid.\n\n**Note:**\n\nIf the certificate is valid, the following statements are true:\n  * The certificate is **not** self-signed (the `ssldomain_matches_cert` value is `1`).\n  * The certificate matches the SSL domain (the `ssldomain_matches_cert` value is `1`).\n  * The certificate is within its validity period (the `cert_valid_not_after` value is **less** than the current time and date)."
                            enum:
                              - 1
                              - 0
                            example: 0
                            type: integer
                          is_self_signed:
                            description: >-
                              Whether the certificate is self-signed.


                              * `1` — Self-signed.

                              * `0` — Not self-signed.


                              **Note:**


                              If the `cert_match_method` value is `none`, you
                              should ignore this return's value.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          is_wild_card:
                            description: |-
                              Whether the certificate is a wildcard certificate.

                              * `1` — Wildcard.
                              * `0` — Not a wildcard.
                            enum:
                              - 1
                              - 0
                            example: 0
                            type: integer
                          ssldomain:
                            description: The best domain to use to access the service.
                            example: hostname.example.com
                            format: domain
                            type: string
                          ssldomain_matches_cert:
                            description: >-
                              Whether an SSL-protected domain matches the
                              certificate.


                              * `1` — Matches.

                              * `0` — Does **not** match.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Request best SSL domain for service
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              get_cn_name \
              domain='example.com' \
              service='cpanel'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/get_cn_name?domain=example.com&service=cpanel
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_get_cn_name.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_get_cn_name.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/get_cn_name/,
                {
                    'domain' => 'example.com',
                    'service' => 'cpanel',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_get_cn_name.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_get_cn_name.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'get_cn_name',
                array (
                    'domain' => 'example.com',
                    'service' => 'cpanel',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/install_ssl:
    get:
      description: >-
        This function installs an SSL certificate.


        **Note:**


        Due to their inherent complexities, SSL-related functions often present
        problems for third-party developers. For the additional steps required
        to successfully call this function, read our [Call UAPI's
        SSL::install_ssl Function in Custom
        Code](https://go.cpanel.net/tutorial-call-uapis-ssl-install-ssl-function-in-custom-code)
        documentation.


        **Important:**


        When you disable the *Calendars and Contacts*, *Receive Mail*, *Web
        Disk*, *Webmail*, and *Web Server*
        [roles](https://go.cpanel.net/serverroles), the system **disables** this
        function.
      operationId: install_ssl
      parameters:
        - description: >-
            The certificate to install.


            **Note:**


            * You **must** URI-encode this value.

            * You can use a Perl command to URI-encode your SSL certificate for
            this parameter.

            For example, you can use the following string, where `CERT.FILE` is
            the SSL certificate file:

              ```$(perl -MURI::Escape -ne 'print uri_escape($_);' CERT.FILE)```
          in: query
          name: cert
          required: true
          schema:
            example: >-
              -----BEGIN%20CERTIFICATE-----%0AMIIEEzCCAvugAwIBAgIJALF%2FjFpw6p1bMA0GCSqGSIb3DQEBBQUAMIGfMRYwFAYD%0AVQQDEw10ZXN0c2ltb24uY29tMRYwFAYDVQQLEw1Eb2N1bWVudGF0aW9uMQswCQYD%0AVQQGEwJVUzEoMCYGCSqGSIb3DQEJARYZbGF1cmVuY2Uuc2ltb25AY3BhbmVsLm5l%0AdDEUMBIGA1UEChMLY1BhbmVsIEluYy4xDjAMBgNVBAgTBVRleGFzMRAwDgYDVQQH%0AEwdIb3VzdG9uMB4XDTEzMDUxNzE2MTMwN1oXDTE0MDUxNzE2MTMwN1owgZ8xFjAU%0ABgNVBAMTDXRlc3RzaW1vbi5jb20xFjAUBgNVBAsTDURvY3VtZW50YXRpb24xCzAJ%0ABgNVBAYTAlVTMSgwJgYJKoZIhvcNAQkBFhlsYXVyZW5jZS5zaW1vbkBjcGFuZWwu%0AbmV0MRQwEgYDVQQKEwtjUGFuZWwgSW5jLjEOMAwGA1UECBMFVGV4YXMxEDAOBgNV%0ABAcTB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRO0AP%0AN5XtjDqkEyJ6ctfYqUtt9yUXyRuCETFjW6opNLSmZSHeF6L2aZka646lhj02CFyl%0AkzsNSxysN66tY%2BWZcTmvgPisJdQFpFvjroJZgDjYRV0QqokKdRy%2F5BU0%2BtHXoYpj%0A9JOQlbvEWxiGR3R80sL1ma4AfSE6Gv8M%2FPULTadan51eHaikXqjOXdPJQKuWP3g9%0AFnIuf38WRYwzGrre88qsZrpsMrADX5dotHWgqAf7Tap6xfA4CUAgQo9tldariuVi%0ABz%2BsRJ%2FSjgxnhw1HYWGttBuBZFhMpdHpPnTJ7DIFMd%2FFN5gG%2Ftah30SapWpo35Ux%0A3BpJcdUjtazy82K5AgMBAAGjUDBOMB0GA1UdDgQWBBQAlv7%2FtALOYb7zAXbYG2%2B9%0AAMI3xjAfBgNVHSMEGDAWgBQAlv7%2FtALOYb7zAXbYG2%2B9AMI3xjAMBgNVHRMEBTAD%0AAQH%2FMA0GCSqGSIb3DQEBBQUAA4IBAQCxzpe71Hc7Es0dqIN7bhIFYIIgcr6wxM6a%0Aa9d%2BQG%2BQPH0x0KAqV8EgUbZysvyxEF0bPxW3ZAr1Is1wk80PMuU3bToFFVbFFIIr%0AHRNfKLGvxiMXnZA1c6L4N0lowvXHgZxTTUXtDFLXyrcwrLsvUErEV7rbizuxqfPw%0AcaRtXn4uc%2Bt6HYuW7yWesBauCWnJNiKbjN%2FF%2BuCTurN3QMAeWf3ZJtsfkAgk8dyq%0AR%2F83a3kDtSPrpt%2BjX%2BqdjKEpRtQ5Qpm6XT2gCOQPgnfiUtOCH419pp922P%2FAAGc%2B%0AZUhYoWcRWKw%2Fy6gI7Ru%2B%2B9%2B8%2BwkadL9EbKMZxhVwD5qVm4ZlWK2a%5Cr%5Cn%0A-----END%20CERTIFICATE-----
            format: pem-certificate
            type: string
        - description: The domain name.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The certificate's key.


            **Note:**


            * You **must** URI-encode this value.

            * You can use a Perl command to URI-encode your SSL certificate for
            this parameter.

            For example, you can use the following string, where `KEY.FILE` is
            the SSL certificate file:

              ```$(perl -MURI::Escape -ne 'print uri_escape($_);' KEY.FILE)```
          in: query
          name: key
          required: true
          schema:
            example: >-
              -----BEGIN%20RSA%20PRIVATE%20KEY-----%0AMIIEpAIBAAKCAQEA4AVM6J4Qg3DIFWr%2FeJ5GRmIATYsJIepKbrDy70sq%2BudcO8R8%0Axxak0oMZ%2F9mUdpjSNK%2FfLVTuCO0kxTfQ9VUWJllX7ThD6Zh9ZvlC%2Fnf%2FOEZLm3Zb%0ABgu8rbC8E9wuDOkKbJLnINgdhtowIydLK2MJ%2B%2Bq62bFV89jkHWTMcKyyqHENo3h%0Ac%2Blkpd9vnp8rZTinaVb7nX26uQqAFZYRo%2BWU0G%2FNPsq40QVSMoqPxyEz4qXo0hvu%0AIlCXmzFZq%2F6fCVPEKPLhQgMmpdBkMz4dVOazREfqXdjMD2%2BQXSNiA1AwWr8l0r4r%0AtzlxEYDJIR41yXp0xMl3KoolxMyvLBqZy32niQIDAQABAoIBAQCmbGmhWmPsMeoC%0At1WJFxQgD4goE0U6k%2BKt7vjbOt14Pk6v%2FB2yjaju1wSGpO59WLS4%2FXrwI2se6IXr%0Amba7u3VUEgWXLriNHoLy7%2FSMNTs%2BZEKhAMG36eNe3tVdT7busTag31r6sEMGGwCs%0AIwpU%2Bazosk0oylWLEX%2Fm%2FuHWEs1eaIEWWWtgHB%2BKZrrP7Rr9RYfVQ144DxmOxS3C%0Aa9%2BmST62WqAVPR6POWGEfZqnZl%2FePWZPcQYbFrhwnnefNoYBl%2FbnLZBo8rbNWxAq%0AOEOuKfkrBzglKG%2F39WKPw8rj4JIVzY0yOuFCW6xCDWRkOrhU8Ol%2F3FvwDa3uJpkp%0AmgPr4TgxAoGBAPGPLmxSuOYR97mDAXxrs037F2GCbqWvI6m7%2FezWe9yn%2BbMpjSIW%0Afsgtq4FsyqzPueEkDdQWi3xh6nu2WI%2F1Tl875opGAqEIJMqss%2Fu11tnva5wzu1cC%0AL6H85A5%2BHMOBvP3sm6CObKcVw92h7kxynVIUJJWhjfeZMN8gBFFpKIVFAoGBAO1p%0AtXBmXLC%2FYKKvtHI3M16%2FZopvM8ZqU2HcAHaw214Refw9JJ%2Fe3%2FxTNfSerVTyCAQO%0A1AdWTzJKBN8jmSYv1Mk1D3RpQPNR7wVzi46KR081AU41uMpqIGVOwHtyVnW%2FZfLr%0Ac1DLIK8Cx8aHfoxffwzoMO5SEQSooeZfOLhsfDN1AoGBAKQTUEINsj%2B75psgbAr6%0AELGgItJ9yPBLVRr%2BcUzEpx9LDWVvjMihpP4NX1gq8EOPWT%2BewLHVmmsjCyV6xw8J%0AXXF8e2xif3in0m3D%2FwCzE7u2T06rKM3B017hKnrZmGoHnrqPU2osM4sOUpshWX6d%0Av1Q4EF1%2BfbK3YCW%2BVpCBsB9NAoGAQo%2BuhNLODee56iKkzpjXWCsFTq6ar3hD5F3P%0A63buKdNwhd2GlSPhXFbf%2B7M5GWW6BZk6rMvv7EOAVice2uvyFm8%2F4%2F1WbmF8R%2BT7%0ALX1rPLO5p%2Fm701QpvP11TabiwqRkqtSEQhSRF0AKTojSW%2FyyHCZFAawUhV%2FZ9EKi%0AHmKb97kCgYAyzmFc2it0HqnsOnRybop603nqMtWGTQO4cxa93HUDpYajuK2K3Dfr%0AxUj6lG3z%2FoKJGGE2JqgZ6LBAhNJtJWJu2ox3pKGE63QjLJnVwb8y1NFYpe%2FcrbLe%0APuBwIR0L7drXxfv7O5btY7h6QI2d1%2FUIAQPAWbxLoTM%2BndQ%2FuPEdfA%3D%3D%0A-----END%20RSA%20PRIVATE%20KEY-----
            format: pem-private-key
            type: string
        - description: "The Certificate Authority (CA) bundle data,\_if the certificate requires it.\n\n**Note:**\n\n* You **must** URI-encode this value.\n* You can use a Perl command to URI-encode your SSL certificate for this parameter.\nFor example, you can use the following string, where `CABUNDLE.FILE` is the SSL certificate file:\n\n  ```$(perl -MURI::Escape -ne 'print uri_escape($_);' CABUNDLE.FILE)```"
          in: query
          name: cabundle
          required: false
          schema:
            example: >-
              -----BEGIN%20CERTIFICATE-----%0AMIIB%2BjCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYD%0AVQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJv%0Ab3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJV%0AUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQDExNHVEUgQ3liZXJU%0AcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC45k%2B625h8cXyv%0ARLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz%2BiCWaEVh43KRuH6X4M%0AypqfpX%2F1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt%2F5%0A1KiOQswkwB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKz%0AdcZfHeFhVYAA1IFLezEPI2PnPfMD%2BfQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWl%0AIjeaY8JIILTbcuPI9tl8vrGvU9oUtCG41tWW4%2F5ODFlitppK%2BULdjG%2BBqXH%2F9Apy%0AbW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY%0A-----END%20CERTIFICATE-----
            format: pem-certificate
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: install_ssl
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          action:
                            description: >-
                              The action that the function used to install the
                              certificate.
                            example: update
                            type: string
                          cert_id:
                            description: The certificate ID.
                            example: >-
                              example_com_bbe7e_16e2d_1369007999_1d87a0cdb540f5aae607b10e9a1a82fb
                            type: string
                          domain:
                            description: The domain that the certificate covers.
                            example: example.com
                            format: domain
                            type: string
                          extra_certificate_domains:
                            description: >-
                              The domains that require extra certificates for
                              mail and other services.
                            items:
                              example: ssl.example.com
                              format: domain
                              type: string
                            type: array
                          html:
                            description: The results, in HTML format.
                            example: >-
                              The SSL certificate is now installed onto the
                              domain "example.com" using the IP address
                              "192.168.0.1".

                              The existing virtual host was updated with the new
                              certificate. Apache is restarting in the
                              background.
                            type: string
                          ip:
                            description: The domain's IP address.
                            example: 192.168.0.1
                            oneOf:
                              - format: ipv4
                                type: string
                              - format: ipv6
                                type: string
                          key_id:
                            description: The key ID.
                            example: bbe7e_16e2d_df7539f280eb1ecf6c1096190e41ada7
                            type: string
                          message:
                            description: The results, in text format.
                            example: >-
                              The SSL certificate is now installed onto the
                              domain "example.com" using the IP address
                              "192.168.0.1".

                              The existing virtual host was updated with the new
                              certificate.

                              Apache is restarting in the background.
                            type: string
                          statusmsg:
                            description: The results.
                            example: >-
                              The SSL certificate is now installed onto the
                              domain "example.com" using the IP address
                              "192.168.0.1".

                              The existing virtual host was updated with the new
                              certificate.

                              Apache is restarting in the background.

                              The SSL certificate is now installed onto the
                              domain "example.com" using the IP address
                              "192.168.0.1".

                              The existing virtual host was updated with the new
                              certificate.

                              Apache is restarting in the background
                            type: string
                          user:
                            description: The domain's owner.
                            example: example
                            format: username
                            type: string
                          warning_domains:
                            description: The domains that the certificate does not cover.
                            items:
                              example: warning.com
                              format: domain
                              type: string
                            type: array
                          working_domains:
                            description: The domains that the certificate covers.
                            items:
                              example: example.com
                              format: domain
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Install SSL certificate
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username SSL install_ssl
            domain='example.com'
            cert='-----BEGIN%20CERTIFICATE-----%0AMIIEEzCCAvugAwIBAgIJALF%2FjFpw6p1bMA0GCSqGSIb3DQEBBQUAMIGfMRYwFAYD%0AVQQDEw10ZXN0c2ltb24uY29tMRYwFAYDVQQLEw1Eb2N1bWVudGF0aW9uMQswCQYD%0AVQQGEwJVUzEoMCYGCSqGSIb3DQEJARYZbGF1cmVuY2Uuc2ltb25AY3BhbmVsLm5l%0AdDEUMBIGA1UEChMLY1BhbmVsIEluYy4xDjAMBgNVBAgTBVRleGFzMRAwDgYDVQQH%0AEwdIb3VzdG9uMB4XDTEzMDUxNzE2MTMwN1oXDTE0MDUxNzE2MTMwN1owgZ8xFjAU%0ABgNVBAMTDXRlc3RzaW1vbi5jb20xFjAUBgNVBAsTDURvY3VtZW50YXRpb24xCzAJ%0ABgNVBAYTAlVTMSgwJgYJKoZIhvcNAQkBFhlsYXVyZW5jZS5zaW1vbkBjcGFuZWwu%0AbmV0MRQwEgYDVQQKEwtjUGFuZWwgSW5jLjEOMAwGA1UECBMFVGV4YXMxEDAOBgNV%0ABAcTB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRO0AP%0AN5XtjDqkEyJ6ctfYqUtt9yUXyRuCETFjW6opNLSmZSHeF6L2aZka646lhj02CFyl%0AkzsNSxysN66tY%2BWZcTmvgPisJdQFpFvjroJZgDjYRV0QqokKdRy%2F5BU0%2BtHXoYpj%0A9JOQlbvEWxiGR3R80sL1ma4AfSE6Gv8M%2FPULTadan51eHaikXqjOXdPJQKuWP3g9%0AFnIuf38WRYwzGrre88qsZrpsMrADX5dotHWgqAf7Tap6xfA4CUAgQo9tldariuVi%0ABz%2BsRJ%2FSjgxnhw1HYWGttBuBZFhMpdHpPnTJ7DIFMd%2FFN5gG%2Ftah30SapWpo35Ux%0A3BpJcdUjtazy82K5AgMBAAGjUDBOMB0GA1UdDgQWBBQAlv7%2FtALOYb7zAXbYG2%2B9%0AAMI3xjAfBgNVHSMEGDAWgBQAlv7%2FtALOYb7zAXbYG2%2B9AMI3xjAMBgNVHRMEBTAD%0AAQH%2FMA0GCSqGSIb3DQEBBQUAA4IBAQCxzpe71Hc7Es0dqIN7bhIFYIIgcr6wxM6a%0Aa9d%2BQG%2BQPH0x0KAqV8EgUbZysvyxEF0bPxW3ZAr1Is1wk80PMuU3bToFFVbFFIIr%0AHRNfKLGvxiMXnZA1c6L4N0lowvXHgZxTTUXtDFLXyrcwrLsvUErEV7rbizuxqfPw%0AcaRtXn4uc%2Bt6HYuW7yWesBauCWnJNiKbjN%2FF%2BuCTurN3QMAeWf3ZJtsfkAgk8dyq%0AR%2F83a3kDtSPrpt%2BjX%2BqdjKEpRtQ5Qpm6XT2gCOQPgnfiUtOCH419pp922P%2FAAGc%2B%0AZUhYoWcRWKw%2Fy6gI7Ru%2B%2B9%2B8%2BwkadL9EbKMZxhVwD5qVm4ZlWK2a%5Cr%5Cn%0A-----END%20CERTIFICATE-----'
            key='-----BEGIN%20RSA%20PRIVATE%20KEY-----%0AMIIEpAIBAAKCAQEA4AVM6J4Qg3DIFWr%2FeJ5GRmIATYsJIepKbrDy70sq%2BudcO8R8%0Axxak0oMZ%2F9mUdpjSNK%2FfLVTuCO0kxTfQ9VUWJllX7ThD6Zh9ZvlC%2Fnf%2FOEZLm3Zb%0ABgu8rbC8E9wuDOkKbJLnINgdhtowIydLK2MJ%2B%2Bq62bFV89jkHWTMcKyyqHENo3h%0Ac%2Blkpd9vnp8rZTinaVb7nX26uQqAFZYRo%2BWU0G%2FNPsq40QVSMoqPxyEz4qXo0hvu%0AIlCXmzFZq%2F6fCVPEKPLhQgMmpdBkMz4dVOazREfqXdjMD2%2BQXSNiA1AwWr8l0r4r%0AtzlxEYDJIR41yXp0xMl3KoolxMyvLBqZy32niQIDAQABAoIBAQCmbGmhWmPsMeoC%0At1WJFxQgD4goE0U6k%2BKt7vjbOt14Pk6v%2FB2yjaju1wSGpO59WLS4%2FXrwI2se6IXr%0Amba7u3VUEgWXLriNHoLy7%2FSMNTs%2BZEKhAMG36eNe3tVdT7busTag31r6sEMGGwCs%0AIwpU%2Bazosk0oylWLEX%2Fm%2FuHWEs1eaIEWWWtgHB%2BKZrrP7Rr9RYfVQ144DxmOxS3C%0Aa9%2BmST62WqAVPR6POWGEfZqnZl%2FePWZPcQYbFrhwnnefNoYBl%2FbnLZBo8rbNWxAq%0AOEOuKfkrBzglKG%2F39WKPw8rj4JIVzY0yOuFCW6xCDWRkOrhU8Ol%2F3FvwDa3uJpkp%0AmgPr4TgxAoGBAPGPLmxSuOYR97mDAXxrs037F2GCbqWvI6m7%2FezWe9yn%2BbMpjSIW%0Afsgtq4FsyqzPueEkDdQWi3xh6nu2WI%2F1Tl875opGAqEIJMqss%2Fu11tnva5wzu1cC%0AL6H85A5%2BHMOBvP3sm6CObKcVw92h7kxynVIUJJWhjfeZMN8gBFFpKIVFAoGBAO1p%0AtXBmXLC%2FYKKvtHI3M16%2FZopvM8ZqU2HcAHaw214Refw9JJ%2Fe3%2FxTNfSerVTyCAQO%0A1AdWTzJKBN8jmSYv1Mk1D3RpQPNR7wVzi46KR081AU41uMpqIGVOwHtyVnW%2FZfLr%0Ac1DLIK8Cx8aHfoxffwzoMO5SEQSooeZfOLhsfDN1AoGBAKQTUEINsj%2B75psgbAr6%0AELGgItJ9yPBLVRr%2BcUzEpx9LDWVvjMihpP4NX1gq8EOPWT%2BewLHVmmsjCyV6xw8J%0AXXF8e2xif3in0m3D%2FwCzE7u2T06rKM3B017hKnrZmGoHnrqPU2osM4sOUpshWX6d%0Av1Q4EF1%2BfbK3YCW%2BVpCBsB9NAoGAQo%2BuhNLODee56iKkzpjXWCsFTq6ar3hD5F3P%0A63buKdNwhd2GlSPhXFbf%2B7M5GWW6BZk6rMvv7EOAVice2uvyFm8%2F4%2F1WbmF8R%2BT7%0ALX1rPLO5p%2Fm701QpvP11TabiwqRkqtSEQhSRF0AKTojSW%2FyyHCZFAawUhV%2FZ9EKi%0AHmKb97kCgYAyzmFc2it0HqnsOnRybop603nqMtWGTQO4cxa93HUDpYajuK2K3Dfr%0AxUj6lG3z%2FoKJGGE2JqgZ6LBAhNJtJWJu2ox3pKGE63QjLJnVwb8y1NFYpe%2FcrbLe%0APuBwIR0L7drXxfv7O5btY7h6QI2d1%2FUIAQPAWbxLoTM%2BndQ%2FuPEdfA%3D%3D%0A-----END%20RSA%20PRIVATE%20KEY-----'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/install_ssl?domain=example.com&cert=-----BEGIN%20CERTIFICATE-----%0aMIIEEzCCAvugAwIBAgIJALF%2fjFpw6p1bMA0GCSqGSIb3DQEBBQUAMIGfMRYwFAYD%0aVQQDEw10ZXN0c2ltb24uY29tMRYwFAYDVQQLEw1Eb2N1bWVudGF0aW9uMQswCQYD%0aVQQGEwJVUzEoMCYGCSqGSIb3DQEJARYZbGF1cmVuY2Uuc2ltb25AY3BhbmVsLm5l%0adDEUMBIGA1UEChMLY1BhbmVsIEluYy4xDjAMBgNVBAgTBVRleGFzMRAwDgYDVQQH%0aEwdIb3VzdG9uMB4XDTEzMDUxNzE2MTMwN1oXDTE0MDUxNzE2MTMwN1owgZ8xFjAU%0aBgNVBAMTDXRlc3RzaW1vbi5jb20xFjAUBgNVBAsTDURvY3VtZW50YXRpb24xCzAJ%0aBgNVBAYTAlVTMSgwJgYJKoZIhvcNAQkBFhlsYXVyZW5jZS5zaW1vbkBjcGFuZWwu%0abmV0MRQwEgYDVQQKEwtjUGFuZWwgSW5jLjEOMAwGA1UECBMFVGV4YXMxEDAOBgNV%0aBAcTB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRO0AP%0aN5XtjDqkEyJ6ctfYqUtt9yUXyRuCETFjW6opNLSmZSHeF6L2aZka646lhj02CFyl%0akzsNSxysN66tY%2bWZcTmvgPisJdQFpFvjroJZgDjYRV0QqokKdRy%2f5BU0%2btHXoYpj%0a9JOQlbvEWxiGR3R80sL1ma4AfSE6Gv8M%2fPULTadan51eHaikXqjOXdPJQKuWP3g9%0aFnIuf38WRYwzGrre88qsZrpsMrADX5dotHWgqAf7Tap6xfA4CUAgQo9tldariuVi%0aBz%2bsRJ%2fSjgxnhw1HYWGttBuBZFhMpdHpPnTJ7DIFMd%2fFN5gG%2ftah30SapWpo35Ux%0a3BpJcdUjtazy82K5AgMBAAGjUDBOMB0GA1UdDgQWBBQAlv7%2ftALOYb7zAXbYG2%2b9%0aAMI3xjAfBgNVHSMEGDAWgBQAlv7%2ftALOYb7zAXbYG2%2b9AMI3xjAMBgNVHRMEBTAD%0aAQH%2fMA0GCSqGSIb3DQEBBQUAA4IBAQCxzpe71Hc7Es0dqIN7bhIFYIIgcr6wxM6a%0aa9d%2bQG%2bQPH0x0KAqV8EgUbZysvyxEF0bPxW3ZAr1Is1wk80PMuU3bToFFVbFFIIr%0aHRNfKLGvxiMXnZA1c6L4N0lowvXHgZxTTUXtDFLXyrcwrLsvUErEV7rbizuxqfPw%0acaRtXn4uc%2bt6HYuW7yWesBauCWnJNiKbjN%2fF%2buCTurN3QMAeWf3ZJtsfkAgk8dyq%0aR%2f83a3kDtSPrpt%2bjX%2bqdjKEpRtQ5Qpm6XT2gCOQPgnfiUtOCH419pp922P%2fAAGc%2b%0aZUhYoWcRWKw%2fy6gI7Ru%2b%2b9%2b8%2bwkadL9EbKMZxhVwD5qVm4ZlWK2a%5cr%5cn%0a-----END%20CERTIFICATE-----&key=-----BEGIN%20RSA%20PRIVATE%20KEY-----%0aMIIEpAIBAAKCAQEA4AVM6J4Qg3DIFWr%2feJ5GRmIATYsJIepKbrDy70sq%2budcO8R8%0axxak0oMZ%2f9mUdpjSNK%2ffLVTuCO0kxTfQ9VUWJllX7ThD6Zh9ZvlC%2fnf%2fOEZLm3Zb%0aBgu8rbC8E9wuDOkKbJLnINgdhtowIydLK2MJ%2b%2bq62bFV89jkHWTMcKyyqHENo3h%0ac%2blkpd9vnp8rZTinaVb7nX26uQqAFZYRo%2bWU0G%2fNPsq40QVSMoqPxyEz4qXo0hvu%0aIlCXmzFZq%2f6fCVPEKPLhQgMmpdBkMz4dVOazREfqXdjMD2%2bQXSNiA1AwWr8l0r4r%0atzlxEYDJIR41yXp0xMl3KoolxMyvLBqZy32niQIDAQABAoIBAQCmbGmhWmPsMeoC%0at1WJFxQgD4goE0U6k%2bKt7vjbOt14Pk6v%2fB2yjaju1wSGpO59WLS4%2fXrwI2se6IXr%0amba7u3VUEgWXLriNHoLy7%2fSMNTs%2bZEKhAMG36eNe3tVdT7busTag31r6sEMGGwCs%0aIwpU%2bazosk0oylWLEX%2fm%2fuHWEs1eaIEWWWtgHB%2bKZrrP7Rr9RYfVQ144DxmOxS3C%0aa9%2bmST62WqAVPR6POWGEfZqnZl%2fePWZPcQYbFrhwnnefNoYBl%2fbnLZBo8rbNWxAq%0aOEOuKfkrBzglKG%2f39WKPw8rj4JIVzY0yOuFCW6xCDWRkOrhU8Ol%2f3FvwDa3uJpkp%0amgPr4TgxAoGBAPGPLmxSuOYR97mDAXxrs037F2GCbqWvI6m7%2fezWe9yn%2bbMpjSIW%0afsgtq4FsyqzPueEkDdQWi3xh6nu2WI%2f1Tl875opGAqEIJMqss%2fu11tnva5wzu1cC%0aL6H85A5%2bHMOBvP3sm6CObKcVw92h7kxynVIUJJWhjfeZMN8gBFFpKIVFAoGBAO1p%0atXBmXLC%2fYKKvtHI3M16%2fZopvM8ZqU2HcAHaw214Refw9JJ%2fe3%2fxTNfSerVTyCAQO%0a1AdWTzJKBN8jmSYv1Mk1D3RpQPNR7wVzi46KR081AU41uMpqIGVOwHtyVnW%2fZfLr%0ac1DLIK8Cx8aHfoxffwzoMO5SEQSooeZfOLhsfDN1AoGBAKQTUEINsj%2b75psgbAr6%0aELGgItJ9yPBLVRr%2bcUzEpx9LDWVvjMihpP4NX1gq8EOPWT%2bewLHVmmsjCyV6xw8J%0aXXF8e2xif3in0m3D%2fwCzE7u2T06rKM3B017hKnrZmGoHnrqPU2osM4sOUpshWX6d%0av1Q4EF1%2bfbK3YCW%2bVpCBsB9NAoGAQo%2buhNLODee56iKkzpjXWCsFTq6ar3hD5F3P%0a63buKdNwhd2GlSPhXFbf%2b7M5GWW6BZk6rMvv7EOAVice2uvyFm8%2f4%2f1WbmF8R%2bT7%0aLX1rPLO5p%2fm701QpvP11TabiwqRkqtSEQhSRF0AKTojSW%2fyyHCZFAawUhV%2fZ9EKi%0aHmKb97kCgYAyzmFc2it0HqnsOnRybop603nqMtWGTQO4cxa93HUDpYajuK2K3Dfr%0axUj6lG3z%2foKJGGE2JqgZ6LBAhNJtJWJu2ox3pKGE63QjLJnVwb8y1NFYpe%2fcrbLe%0aPuBwIR0L7drXxfv7O5btY7h6QI2d1%2fUIAQPAWbxLoTM%2bndQ%2fuPEdfA%3d%3d%0a-----END%20RSA%20PRIVATE%20KEY-----
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_install_ssl.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_install_ssl.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/install_ssl/,
                {
                    'domain' => 'example.com',
                    'cert' => '-----BEGIN CERTIFICATE-----
            MIIEEzCCAvugAwIBAgIJALF/jFpw6p1bMA0GCSqGSIb3DQEBBQUAMIGfMRYwFAYD

            VQQDEw10ZXN0c2ltb24uY29tMRYwFAYDVQQLEw1Eb2N1bWVudGF0aW9uMQswCQYD

            VQQGEwJVUzEoMCYGCSqGSIb3DQEJARYZbGF1cmVuY2Uuc2ltb25AY3BhbmVsLm5l

            dDEUMBIGA1UEChMLY1BhbmVsIEluYy4xDjAMBgNVBAgTBVRleGFzMRAwDgYDVQQH

            EwdIb3VzdG9uMB4XDTEzMDUxNzE2MTMwN1oXDTE0MDUxNzE2MTMwN1owgZ8xFjAU

            BgNVBAMTDXRlc3RzaW1vbi5jb20xFjAUBgNVBAsTDURvY3VtZW50YXRpb24xCzAJ

            BgNVBAYTAlVTMSgwJgYJKoZIhvcNAQkBFhlsYXVyZW5jZS5zaW1vbkBjcGFuZWwu

            bmV0MRQwEgYDVQQKEwtjUGFuZWwgSW5jLjEOMAwGA1UECBMFVGV4YXMxEDAOBgNV

            BAcTB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRO0AP

            N5XtjDqkEyJ6ctfYqUtt9yUXyRuCETFjW6opNLSmZSHeF6L2aZka646lhj02CFyl

            kzsNSxysN66tY+WZcTmvgPisJdQFpFvjroJZgDjYRV0QqokKdRy/5BU0+tHXoYpj

            9JOQlbvEWxiGR3R80sL1ma4AfSE6Gv8M/PULTadan51eHaikXqjOXdPJQKuWP3g9

            FnIuf38WRYwzGrre88qsZrpsMrADX5dotHWgqAf7Tap6xfA4CUAgQo9tldariuVi

            Bz+sRJ/Sjgxnhw1HYWGttBuBZFhMpdHpPnTJ7DIFMd/FN5gG/tah30SapWpo35Ux

            3BpJcdUjtazy82K5AgMBAAGjUDBOMB0GA1UdDgQWBBQAlv7/tALOYb7zAXbYG2+9

            AMI3xjAfBgNVHSMEGDAWgBQAlv7/tALOYb7zAXbYG2+9AMI3xjAMBgNVHRMEBTAD

            AQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCxzpe71Hc7Es0dqIN7bhIFYIIgcr6wxM6a

            a9d+QG+QPH0x0KAqV8EgUbZysvyxEF0bPxW3ZAr1Is1wk80PMuU3bToFFVbFFIIr

            HRNfKLGvxiMXnZA1c6L4N0lowvXHgZxTTUXtDFLXyrcwrLsvUErEV7rbizuxqfPw

            caRtXn4uc+t6HYuW7yWesBauCWnJNiKbjN/F+uCTurN3QMAeWf3ZJtsfkAgk8dyq

            R/83a3kDtSPrpt+jX+qdjKEpRtQ5Qpm6XT2gCOQPgnfiUtOCH419pp922P/AAGc+

            ZUhYoWcRWKw/y6gI7Ru++9+8+wkadL9EbKMZxhVwD5qVm4ZlWK2a\r\n

            -----END CERTIFICATE-----',
                    'key' => '-----BEGIN RSA PRIVATE KEY-----
            MIIEpAIBAAKCAQEA4AVM6J4Qg3DIFWr/eJ5GRmIATYsJIepKbrDy70sq+udcO8R8

            xxak0oMZ/9mUdpjSNK/fLVTuCO0kxTfQ9VUWJllX7ThD6Zh9ZvlC/nf/OEZLm3Zb

            Bgu8rbC8E9wuDOkKbJLnINgdhtowIydLK2MJ++q62bFV89jkHWTMcKyyqHENo3h

            c+lkpd9vnp8rZTinaVb7nX26uQqAFZYRo+WU0G/NPsq40QVSMoqPxyEz4qXo0hvu

            IlCXmzFZq/6fCVPEKPLhQgMmpdBkMz4dVOazREfqXdjMD2+QXSNiA1AwWr8l0r4r

            tzlxEYDJIR41yXp0xMl3KoolxMyvLBqZy32niQIDAQABAoIBAQCmbGmhWmPsMeoC

            t1WJFxQgD4goE0U6k+Kt7vjbOt14Pk6v/B2yjaju1wSGpO59WLS4/XrwI2se6IXr

            mba7u3VUEgWXLriNHoLy7/SMNTs+ZEKhAMG36eNe3tVdT7busTag31r6sEMGGwCs

            IwpU+azosk0oylWLEX/m/uHWEs1eaIEWWWtgHB+KZrrP7Rr9RYfVQ144DxmOxS3C

            a9+mST62WqAVPR6POWGEfZqnZl/ePWZPcQYbFrhwnnefNoYBl/bnLZBo8rbNWxAq

            OEOuKfkrBzglKG/39WKPw8rj4JIVzY0yOuFCW6xCDWRkOrhU8Ol/3FvwDa3uJpkp

            mgPr4TgxAoGBAPGPLmxSuOYR97mDAXxrs037F2GCbqWvI6m7/ezWe9yn+bMpjSIW

            fsgtq4FsyqzPueEkDdQWi3xh6nu2WI/1Tl875opGAqEIJMqss/u11tnva5wzu1cC

            L6H85A5+HMOBvP3sm6CObKcVw92h7kxynVIUJJWhjfeZMN8gBFFpKIVFAoGBAO1p

            tXBmXLC/YKKvtHI3M16/ZopvM8ZqU2HcAHaw214Refw9JJ/e3/xTNfSerVTyCAQO

            1AdWTzJKBN8jmSYv1Mk1D3RpQPNR7wVzi46KR081AU41uMpqIGVOwHtyVnW/ZfLr

            c1DLIK8Cx8aHfoxffwzoMO5SEQSooeZfOLhsfDN1AoGBAKQTUEINsj+75psgbAr6

            ELGgItJ9yPBLVRr+cUzEpx9LDWVvjMihpP4NX1gq8EOPWT+ewLHVmmsjCyV6xw8J

            XXF8e2xif3in0m3D/wCzE7u2T06rKM3B017hKnrZmGoHnrqPU2osM4sOUpshWX6d

            v1Q4EF1+fbK3YCW+VpCBsB9NAoGAQo+uhNLODee56iKkzpjXWCsFTq6ar3hD5F3P

            63buKdNwhd2GlSPhXFbf+7M5GWW6BZk6rMvv7EOAVice2uvyFm8/4/1WbmF8R+T7

            LX1rPLO5p/m701QpvP11TabiwqRkqtSEQhSRF0AKTojSW/yyHCZFAawUhV/Z9EKi

            HmKb97kCgYAyzmFc2it0HqnsOnRybop603nqMtWGTQO4cxa93HUDpYajuK2K3Dfr

            xUj6lG3z/oKJGGE2JqgZ6LBAhNJtJWJu2ox3pKGE63QjLJnVwb8y1NFYpe/crbLe

            PuBwIR0L7drXxfv7O5btY7h6QI2d1/UIAQPAWbxLoTM+ndQ/uPEdfA==

            -----END RSA PRIVATE KEY-----',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_install_ssl.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_install_ssl.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'install_ssl',
                array (
                    'domain' => 'example.com',
                    'cert' => '-----BEGIN CERTIFICATE-----
            MIIEEzCCAvugAwIBAgIJALF/jFpw6p1bMA0GCSqGSIb3DQEBBQUAMIGfMRYwFAYD

            VQQDEw10ZXN0c2ltb24uY29tMRYwFAYDVQQLEw1Eb2N1bWVudGF0aW9uMQswCQYD

            VQQGEwJVUzEoMCYGCSqGSIb3DQEJARYZbGF1cmVuY2Uuc2ltb25AY3BhbmVsLm5l

            dDEUMBIGA1UEChMLY1BhbmVsIEluYy4xDjAMBgNVBAgTBVRleGFzMRAwDgYDVQQH

            EwdIb3VzdG9uMB4XDTEzMDUxNzE2MTMwN1oXDTE0MDUxNzE2MTMwN1owgZ8xFjAU

            BgNVBAMTDXRlc3RzaW1vbi5jb20xFjAUBgNVBAsTDURvY3VtZW50YXRpb24xCzAJ

            BgNVBAYTAlVTMSgwJgYJKoZIhvcNAQkBFhlsYXVyZW5jZS5zaW1vbkBjcGFuZWwu

            bmV0MRQwEgYDVQQKEwtjUGFuZWwgSW5jLjEOMAwGA1UECBMFVGV4YXMxEDAOBgNV

            BAcTB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRO0AP

            N5XtjDqkEyJ6ctfYqUtt9yUXyRuCETFjW6opNLSmZSHeF6L2aZka646lhj02CFyl

            kzsNSxysN66tY+WZcTmvgPisJdQFpFvjroJZgDjYRV0QqokKdRy/5BU0+tHXoYpj

            9JOQlbvEWxiGR3R80sL1ma4AfSE6Gv8M/PULTadan51eHaikXqjOXdPJQKuWP3g9

            FnIuf38WRYwzGrre88qsZrpsMrADX5dotHWgqAf7Tap6xfA4CUAgQo9tldariuVi

            Bz+sRJ/Sjgxnhw1HYWGttBuBZFhMpdHpPnTJ7DIFMd/FN5gG/tah30SapWpo35Ux

            3BpJcdUjtazy82K5AgMBAAGjUDBOMB0GA1UdDgQWBBQAlv7/tALOYb7zAXbYG2+9

            AMI3xjAfBgNVHSMEGDAWgBQAlv7/tALOYb7zAXbYG2+9AMI3xjAMBgNVHRMEBTAD

            AQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCxzpe71Hc7Es0dqIN7bhIFYIIgcr6wxM6a

            a9d+QG+QPH0x0KAqV8EgUbZysvyxEF0bPxW3ZAr1Is1wk80PMuU3bToFFVbFFIIr

            HRNfKLGvxiMXnZA1c6L4N0lowvXHgZxTTUXtDFLXyrcwrLsvUErEV7rbizuxqfPw

            caRtXn4uc+t6HYuW7yWesBauCWnJNiKbjN/F+uCTurN3QMAeWf3ZJtsfkAgk8dyq

            R/83a3kDtSPrpt+jX+qdjKEpRtQ5Qpm6XT2gCOQPgnfiUtOCH419pp922P/AAGc+

            ZUhYoWcRWKw/y6gI7Ru++9+8+wkadL9EbKMZxhVwD5qVm4ZlWK2a\r\n

            -----END CERTIFICATE-----',
                    'key' => '-----BEGIN RSA PRIVATE KEY-----
            MIIEpAIBAAKCAQEA4AVM6J4Qg3DIFWr/eJ5GRmIATYsJIepKbrDy70sq+udcO8R8

            xxak0oMZ/9mUdpjSNK/fLVTuCO0kxTfQ9VUWJllX7ThD6Zh9ZvlC/nf/OEZLm3Zb

            Bgu8rbC8E9wuDOkKbJLnINgdhtowIydLK2MJ++q62bFV89jkHWTMcKyyqHENo3h

            c+lkpd9vnp8rZTinaVb7nX26uQqAFZYRo+WU0G/NPsq40QVSMoqPxyEz4qXo0hvu

            IlCXmzFZq/6fCVPEKPLhQgMmpdBkMz4dVOazREfqXdjMD2+QXSNiA1AwWr8l0r4r

            tzlxEYDJIR41yXp0xMl3KoolxMyvLBqZy32niQIDAQABAoIBAQCmbGmhWmPsMeoC

            t1WJFxQgD4goE0U6k+Kt7vjbOt14Pk6v/B2yjaju1wSGpO59WLS4/XrwI2se6IXr

            mba7u3VUEgWXLriNHoLy7/SMNTs+ZEKhAMG36eNe3tVdT7busTag31r6sEMGGwCs

            IwpU+azosk0oylWLEX/m/uHWEs1eaIEWWWtgHB+KZrrP7Rr9RYfVQ144DxmOxS3C

            a9+mST62WqAVPR6POWGEfZqnZl/ePWZPcQYbFrhwnnefNoYBl/bnLZBo8rbNWxAq

            OEOuKfkrBzglKG/39WKPw8rj4JIVzY0yOuFCW6xCDWRkOrhU8Ol/3FvwDa3uJpkp

            mgPr4TgxAoGBAPGPLmxSuOYR97mDAXxrs037F2GCbqWvI6m7/ezWe9yn+bMpjSIW

            fsgtq4FsyqzPueEkDdQWi3xh6nu2WI/1Tl875opGAqEIJMqss/u11tnva5wzu1cC

            L6H85A5+HMOBvP3sm6CObKcVw92h7kxynVIUJJWhjfeZMN8gBFFpKIVFAoGBAO1p

            tXBmXLC/YKKvtHI3M16/ZopvM8ZqU2HcAHaw214Refw9JJ/e3/xTNfSerVTyCAQO

            1AdWTzJKBN8jmSYv1Mk1D3RpQPNR7wVzi46KR081AU41uMpqIGVOwHtyVnW/ZfLr

            c1DLIK8Cx8aHfoxffwzoMO5SEQSooeZfOLhsfDN1AoGBAKQTUEINsj+75psgbAr6

            ELGgItJ9yPBLVRr+cUzEpx9LDWVvjMihpP4NX1gq8EOPWT+ewLHVmmsjCyV6xw8J

            XXF8e2xif3in0m3D/wCzE7u2T06rKM3B017hKnrZmGoHnrqPU2osM4sOUpshWX6d

            v1Q4EF1+fbK3YCW+VpCBsB9NAoGAQo+uhNLODee56iKkzpjXWCsFTq6ar3hD5F3P

            63buKdNwhd2GlSPhXFbf+7M5GWW6BZk6rMvv7EOAVice2uvyFm8/4/1WbmF8R+T7

            LX1rPLO5p/m701QpvP11TabiwqRkqtSEQhSRF0AKTojSW/yyHCZFAawUhV/Z9EKi

            HmKb97kCgYAyzmFc2it0HqnsOnRybop603nqMtWGTQO4cxa93HUDpYajuK2K3Dfr

            xUj6lG3z/oKJGGE2JqgZ6LBAhNJtJWJu2ox3pKGE63QjLJnVwb8y1NFYpe/crbLe

            PuBwIR0L7drXxfv7O5btY7h6QI2d1/UIAQPAWbxLoTM+ndQ/uPEdfA==

            -----END RSA PRIVATE KEY-----',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/installed_host:
    get:
      description: >-
        This function retrieves information about a certificate that is
        installed on a domain's dedicated IP address.


        **Important:**

          * If you do **not** possess a dedicated IP address, this function will **fail**. For non-dedicated IP addresses, use the `SSL::installed_hosts` function.
          * When you disable the _Calendars and Contacts_, _Receive Mail_, _Web Disk_ , _Webmail_ , **and**  _Web Server_ [roles](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: installed_host
      parameters:
        - description: |-
            The domain name.

            **Note:**

            The parameter defaults to the account's main domain.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            format: domain
            type: string
        - description: |-
            Verify the certificate.
            * `1` — Verify the certificate.
            * `0` — Do **not** verify the certificate.
          in: query
          name: verify_certificate
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: installed_host
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          certificate:
                            description: An object containing the certificate information.
                            properties:
                              domains:
                                description: The domains that the certificate covers.
                                items:
                                  example: example.com
                                  format: domain
                                  type: string
                                type: array
                              ecdsa_curve_name:
                                description: "The ECDSA curve that the certificate's key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The certificate's key is **not** an ECDSA key."
                                enum:
                                  - prime256v1
                                  - secp384r1
                                example: null
                                nullable: true
                                type: string
                              ecdsa_public:
                                description: "The certificate's key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The certificate's key is **not** an ECDSA key."
                                example: null
                                nullable: true
                                type: string
                              id:
                                description: The certificate's ID.
                                example: >-
                                  example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
                                type: string
                              is_self_signed:
                                description: |-
                                  Whether the certificate is self-signed.
                                  * `1` — Self-signed.
                                  * `0` — Not self-signed.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                              issuer.commonName:
                                description: >-
                                  The issuer's Common Name, typically a domain
                                  name.
                                example: example.com
                                type: string
                              issuer.organizationName:
                                description: The certificate's organization.
                                example: Organization
                                type: string
                              issuer_text:
                                description: >-
                                  The X.509 information about the issuer that
                                  contains CSR information.
                                example: |-
                                  commonName
                                  example.com
                                  countryName
                                  US
                                  emailAddress
                                  username@example.com
                                  organizationName
                                  Example
                                  stateOrProvinceName
                                  Texas
                                  localityName
                                  Houston
                                type: string
                              key_algorithm:
                                description: |-
                                  The certificate's key's algorithm.

                                    * `rsaEncryption` — RSA.
                                    * `id-ecPublicKey` — ECDSA.
                                enum:
                                  - rsaEncryption
                                  - id-ecPublicKey
                                example: rsaEncryption
                                type: string
                              modulus:
                                description: "The certificate's key's modulus, in hexadecimal format.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                                example: >-
                                  a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                                nullable: true
                                type: string
                              modulus_length:
                                description: "The length, in bits, of the certificate's key's modulus.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                                example: 2048
                                minimum: 1
                                nullable: true
                                type: integer
                              not_after:
                                description: The certificate's expiration time.
                                example: 1397169490
                                format: unix_timestamp
                                type: integer
                              not_before:
                                description: The certificate's start time.
                                example: 1365633490
                                format: unix_timestamp
                                type: integer
                              signature_algorithm:
                                description: The signature algorithm of the certificate.
                                example: sha256WithRSAEncryption
                                type: string
                              subject.commonName:
                                description: The certificate's Common Name.
                                example: example.com
                                type: string
                              subject_text:
                                description: >-
                                  The X.509 information about the certificate's
                                  subject that contains CSR information.
                                example: |-
                                  commonName
                                  example.com
                                type: string
                              validation_type:
                                description: >-
                                  The certificate's validation type.

                                  * `ev` — Extended Validation.

                                  * `ov` — Organization Validation.

                                  * `dv` — Domain Validation.

                                  * `null` — The system could not parse and
                                  determine the certificate's validation type.
                                enum:
                                  - ev
                                  - ov
                                  - dv
                                example: dv
                                nullable: true
                                type: string
                              verify_error:
                                description: >-
                                  Any errors that exist during the certificate
                                  verification process. If there are no errors,
                                  this will return an empty string.


                                  **Note:**


                                  You **must** set the `verify_certificate`
                                  parameter to `1` for this return to appear.
                                example: ''
                                type: string
                            type: object
                          host:
                            description: The issuer's hostname.
                            example: example.com
                            format: domain
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return SSL certificate's info for dedicated IP
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              installed_host
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/installed_host
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_installed_host.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_installed_host.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/installed_host/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_installed_host.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_installed_host.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'installed_host'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/installed_hosts:
    get:
      description: >-
        This function retrieves a list of the account's websites, their domains,
        and certificate information.


        **Important:**

          For a dedicated IP address, use the UAPI `SSL::installed_host` function.

        **Important:**

         When you disable the *CalendarContact* , *MailReceive* , *WebDisk* , *Webmail* , and  *WebServer* [roles](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: installed_hosts
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: installed_hosts
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            certificate:
                              description: >-
                                An object that contains information about each
                                certificate.
                              properties:
                                auto_ssl_provider:
                                  description: The AutoSSL provider's name.
                                  example: cPanel
                                  type: string
                                auto_ssl_provider_display_name:
                                  description: The AutoSSL provider's display name.
                                  example: Sectigo
                                  type: string
                                domains:
                                  description: The domains that the certificate covers.
                                  items:
                                    example: example.com
                                    format: domain
                                    type: string
                                  type: array
                                ecdsa_curve_name:
                                  description: "The ECDSA curve that the certificate's key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The certificate's key is **not** an ECDSA key."
                                  enum:
                                    - prime256v1
                                    - secp384r1
                                  example: null
                                  nullable: true
                                  type: string
                                ecdsa_public:
                                  description: "The certificate's key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The certificate's key is **not** an ECDSA key."
                                  example: null
                                  nullable: true
                                  type: string
                                id:
                                  description: The certificate's ID.
                                  example: >-
                                    example_com_a74f7_9dddf_1446659822_eae1ff43c4ec1991e195877c55755eff
                                  type: string
                                is_autossl:
                                  description: >-
                                    Whether the AutoSSL service provided the
                                    certificate.

                                    * `1` - Provided by the AutoSSL service.

                                    * `0` - Not provided by the AutoSSL service.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                is_self_signed:
                                  description: |-
                                    Whether the certificate is self-signed.
                                    * `1` - Self-signed.
                                    * `0` - Not self-signed.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                issuer.commonName:
                                  description: The name that issued the certificate.
                                  example: example.com
                                  format: domain
                                  type: string
                                issuer.organizationName:
                                  description: The certificate's organization name.
                                  example: The Example Organization
                                  type: string
                                issuer_text:
                                  description: The issuer's X.509 information.
                                  example: |-
                                    example.com
                                    countryName
                                    US
                                    emailAddress
                                    username@example.com
                                    organizationName
                                    Example
                                    stateOrProvinceName
                                    Texas
                                    localityName
                                    Houston
                                  type: string
                                key_algorithm:
                                  description: |-
                                    The certificate's key's algorithm.

                                    * `rsaEncryption` — RSA.
                                    * `id-ecPublicKey` — ECDSA.
                                  enum:
                                    - rsaEncryption
                                    - id-ecPublicKey
                                  example: rsaEncryption
                                  type: string
                                modulus:
                                  description: "The certificate's key's modulus, in hexadecimal format.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                                  example: >-
                                    a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                                  format: hex
                                  nullable: true
                                  type: string
                                modulus_length:
                                  description: "The length, in bits, of the certificate's key's modulus.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                                  example: 2048
                                  minimum: 1
                                  nullable: true
                                  type: integer
                                not_after:
                                  description: When the certificate expired.
                                  example: 1446659822
                                  format: unix_timestamp
                                  type: integer
                                not_before:
                                  description: When the certificate started.
                                  example: 1415123822
                                  format: unix_timestamp
                                  type: integer
                                signature_algorithm:
                                  description: The signature algorithm of the certificate.
                                  example: sha256WithRSAEncryption
                                  format: sha256
                                  type: string
                                subject.commonName:
                                  description: The certificate's common name.
                                  example: example.com
                                  format: domain
                                  type: string
                                subject_text:
                                  description: The subject's X.509 information.
                                  example: |-
                                    commonName
                                    example.com
                                  type: string
                                validation_type:
                                  description: >-
                                    The certificate's validation type.


                                    **Note:**

                                    * `ev` -  Extended Validation.

                                    * `ov` - Organization Validation.

                                    * `dv` - Domain Validation.

                                    * null - The system could not parse and
                                    determine the certificate's validation type.
                                  enum:
                                    - ev
                                    - ov
                                    - dv
                                  example: dv
                                  nullable: true
                                  type: string
                              type: object
                            certificate_text:
                              description: The certificate's text.
                              example: >-
                                -----BEGIN CERTIFICATE-----

                                MIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJ

                                c2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQI

                                DAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYy

                                MjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNV

                                BAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0G

                                CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3P

                                Xx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fW

                                voK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/da

                                M3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC

                                +Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6

                                PLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj

                                UDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw

                                +wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA

                                A4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3Wh

                                cDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVw

                                FYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh

                                /SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2ag

                                qz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPa

                                Km6r7YmwfLN/YMZBHXSR58oOGP9W

                                -----END CERTIFICATE-----
                              format: pem-certificate
                              type: string
                            docroot:
                              description: >-
                                The document root of the domain that the
                                certificate covers.
                              example: /home/username/public_html
                              format: path
                              type: string
                            domains:
                              description: The domains that the certificate covers.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            fqdns:
                              description: >-
                                An array of every valid fully qualified domain

                                name (FQDN) on the virtual host, which includes
                                service

                                subdomains (proxy subdomains).
                              items:
                                example: www.example.com
                                format: domain
                                type: string
                              type: array
                            ip:
                              description: The host's IP address.
                              example: 192.168.0.1
                              oneOf:
                                - format: ipv4
                                  type: string
                                - format: ipv6
                                  type: string
                            is_primary_on_ip:
                              description: >-
                                Whether the website is primary on the IP
                                address.

                                * `1` - Primary.

                                * `0` - Not primary.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            mail_sni_status:
                              description: |-
                                Whether SNI is active on the domain.
                                * `1` - Active.
                                * `0` - Inactive.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            needs_sni:
                              description: |-
                                Whether the website requires SNI to function.
                                * `1` - Requires SNI.
                                * `0` - Does not require SNI.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            servername:
                              description: The server's hostname.
                              example: example.com
                              format: domain
                              type: string
                          type: object
                        properties: {}
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains with SSL certificate information
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              installed_hosts
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/installed_hosts
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_installed_hosts.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_installed_hosts.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/installed_hosts/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_installed_hosts.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_installed_hosts.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'installed_hosts'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/is_autossl_check_in_progress:
    get:
      description: >-
        This function verifies whether the `autossl_check` task is in progress
        for the current user.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: is_autossl_check_in_progress
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_autossl_check_in_progress
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the `autossl_check` task is in progress for
                          the current user.

                          * `1` - In progress.

                          * `0` - **Not** currently in progress.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether AutoSSL check in progress
      tags:
        - SSL
        - Auto-generated SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              is_autossl_check_in_progress
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/is_autossl_check_in_progress
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_is_autossl_check_in_progress.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_is_autossl_check_in_progress.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/is_autossl_check_in_progress/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_is_autossl_check_in_progress.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_is_autossl_check_in_progress.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'is_autossl_check_in_progress'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 68
  /SSL/is_mail_sni_supported:
    get:
      description: >-
        This function checks whether the sslinstall feature is enabled.


        **Warning:**


        Mail SNI is always enabled.

        * Mail SNI is **not** compatible with Webmail and will **not** function
        for any Webmail connection. Webmail connections use the cPanel service
        SSL certificate.

        * Functions that enable Mail SNI succeed with a warning that Mail SNI is
        always enabled.

        * Functions that disable Mail SNI will fail and make no changes.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: is_mail_sni_supported
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_mail_sni_supported
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the sslinstall feature is enabled.
                          * `1` - Enabled.
                          * `0` - Disabled.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether mail SNI is enabled
      tags:
        - SSL
        - SNI Email Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              is_mail_sni_supported
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/is_mail_sni_supported
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_is_mail_sni_supported.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_is_mail_sni_supported.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/is_mail_sni_supported/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_is_mail_sni_supported.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_is_mail_sni_supported.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'is_mail_sni_supported'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /SSL/is_sni_supported:
    get:
      description: >-
        This function checks whether the Apache web server supports SNI.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: is_sni_supported
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_sni_supported
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the Apache web server supports SNI.
                          * `1` - Supported.
                          * `0` - **Not** supported.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether Apache web server supports mail SNI
      tags:
        - SSL
        - SNI Email Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              is_sni_supported
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/is_sni_supported
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_is_sni_supported.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_is_sni_supported.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/is_sni_supported/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_is_sni_supported.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_is_sni_supported.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'is_sni_supported'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/list_certs:
    get:
      description: >-
        This function lists an account's certificates.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: list_certs
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_certs
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            created:
                              description: The date the certificate was created.
                              example: 1569884400
                              format: unix_timestamp
                              type: integer
                            domain_is_configured:
                              description: >-
                                Whether the certificate is installed on the
                                account.


                                * `1` — Installed.

                                * `0` — Not installed.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            domains:
                              description: A list of domains that the certificate covers.
                              items:
                                example: example.com
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: >-
                                The ECDSA curve that the certificate's key uses.


                                * `prime256v1`

                                * `secp384r1`

                                * `null` — The certificate's key is **not** an
                                ECDSA key.
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: >-
                                The certificate's key's ECDSA compressed public
                                point, in hexadecimal format.


                                * `null` — The certificate's key is **not** an
                                ECDSA key.
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The certificate's friendly name.
                              example: TestCert
                              type: string
                            id:
                              description: The certificate's ID.
                              example: >-
                                example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
                              type: string
                            is_self_signed:
                              description: |-
                                Whether the certificate is self-signed.

                                * `1` — Self-signed.
                                * `0` — Not self-signed.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            issuer.commonName:
                              description: The issuer's name.
                              example: example.com
                              type: string
                            issuer.organizationName:
                              description: The certificate's organization.
                              example: Organization
                              type: string
                            issuer_text:
                              description: The certificate's issuer information.
                              example: >-
                                countryName

                                US

                                stateOrProvinceName

                                TX

                                localityName

                                Houston

                                organizationName

                                WebPros International, LLC

                                commonName

                                WebPros International, LLC Certification
                                Authority
                              type: string
                            key_algorithm:
                              description: |-
                                The certificate's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: >-
                                The certificate's key's modulus, in hexadecimal
                                format.


                                * `null` — The certificate's key is **not** an
                                RSA key.
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                            modulus_length:
                              description: >-
                                The length, in bits, of the certificate's key's
                                modulus.


                                * `null` — The certificate's key is **not** an
                                RSA key.
                              example: 2048
                              nullable: true
                              type: integer
                            not_after:
                              description: The certificate's expiration date.
                              example: 1601467200
                              format: unix_timestamp
                              type: integer
                            not_before:
                              description: The certificate's start date.
                              example: 1569844800
                              format: unix_timestamp
                              type: integer
                            serial:
                              description: The certificate's serial number.
                              example: 45462cd0d6537b20cf2f3eb8aec07140
                              type: string
                            signature_algorithm:
                              description: >-
                                The OID hash algorithm signature of the
                                certificate.
                              example: sha256WithRSAEncryption
                              type: string
                            subject.commonName:
                              description: The certificate's Common Name (CN).
                              example: example.com
                              type: string
                            subject_text:
                              description: The certificate's subject text information.
                              example: |-
                                commonName
                                www.example.com
                              type: string
                            validation_type:
                              description: "The certificate's validation type.\n\n* `ev` — Extended Validation.\n* `ov` —\_Organization Validation.\n* `dv` — Domain Validation.\n* `null` — The system could not parse and determine the\ncertificate's validation type."
                              enum:
                                - ev
                                - ov
                                - dv
                              example: dv
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return all SSL certificates
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              list_certs
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/list_certs
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_list_certs.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_list_certs.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/list_certs/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_list_certs.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_list_certs.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'list_certs'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/list_csrs:
    get:
      description: |-
        This function lists an account's certificate signing requests (CSR).

        **Important:**

        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),
        the system **disables** this function.
      operationId: list_csrs
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_csrs
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            commonName:
                              description: The CSR's Common Name or Distinguished Name.
                              example: example.com
                              type: string
                            created:
                              description: The CSR's creation date.
                              example: 1538265600
                              format: unix_timestamp
                              type: integer
                            domains:
                              description: A list of the domains that the CSR covers.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: "The ECDSA curve that the CSR's key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The CSR's key is **not** an ECDSA key."
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: "The CSR's key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The CSR's key is **not** an ECDSA key."
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The CSR's friendly name.
                              example: TestCSR
                              type: string
                            id:
                              description: The CSR's ID.
                              example: >-
                                example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
                              type: string
                            key_algorithm:
                              description: |-
                                The CSR's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: "The CSR's key's modulus, in hexadecimal format.\n\n* `null` —\_The CSR's key is **not** an RSA key."
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return all certificate signing requests
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              list_csrs
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/list_csrs
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_list_csrs.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to .../frontend/<theme_name>/api_examples/SSL_list_csrs.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/list_csrs/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_list_csrs.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_list_csrs.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'list_csrs'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/list_keys:
    get:
      description: >-
        This function lists an account's private keys.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: list_keys
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_keys
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            created:
                              description: The key's creation date.
                              example: 1569844800
                              format: unix_timestamp
                              type: integer
                            ecdsa_curve_name:
                              description: "The ECDSA curve that the key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The key is **not** an ECDSA key."
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: "The key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The key is **not** an ECDSA key."
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The key's friendly name.
                              example: TestKey
                              type: string
                            id:
                              description: The key ID.
                              example: b116e_473f5_ad6b3bd9517fb157830d0e37a03bc596
                              type: string
                            key_algorithm:
                              description: |-
                                The key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: "The key's modulus, in hexadecimal format.\n\n* `null` —\_The key is **not** an RSA key."
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                            modulus_length:
                              description: "The length, in bits, of the key's modulus.\n\n* `null` —\_The key is **not** an RSA key."
                              example: 2048
                              minimum: 1
                              nullable: true
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return all private keys
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              list_keys
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/list_keys
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_list_keys.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to .../frontend/<theme_name>/api_examples/SSL_list_keys.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/list_keys/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_list_keys.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_list_keys.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'list_keys'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/list_ssl_items:
    get:
      description: >-
        This function lists SSL-related items on a domain.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.com/serverroles), the
        system **disables** this function.
      operationId: list_ssl_items
      parameters:
        - description: The domain name or names.
          examples:
            multiple:
              summary: Multiple domains.
              value: domains=example1.com|example2.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domains
          required: false
          schema:
            type: string
        - description: |-
            The SSL item type or types.
            * `key`
            * `csr`
            * `crt`
          examples:
            multiple:
              summary: Multiple item types.
              value: item=key|csr
            single:
              summary: A single item type.
              value: key
          in: query
          name: item
          required: false
          schema:
            default: key
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_ssl_items
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            host:
                              description: The hostname.
                              example: example.com
                              format: domain
                              type: string
                            id:
                              description: The certificate's ID.
                              example: >-
                                example_com_a74f7_9dddf_1446659822_eae1ff43c4ec1991e195877c55755eff
                              type: string
                            type:
                              description: |-
                                The type of SSL item.
                                * `key`
                                * `csr`
                                * `crt`
                              enum:
                                - key
                                - csr
                                - crt
                              example: key
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return SSL-related items
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              list_ssl_items
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/list_ssl_items
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_list_ssl_items.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_list_ssl_items.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/list_ssl_items/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_list_ssl_items.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_list_ssl_items.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'list_ssl_items'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/mail_sni_status:
    get:
      description: >-
        This function retrieves the status of the domain's SNI mail services.


        **Warning:**


        Mail SNI is **not** compatible with Webmail and will not function for
        any Webmail connection. Webmail connections use the cPanel service SSL
        certificate.


        **Note:**


        Mail SNI is always enabled.

        * Functions that enable Mail SNI succeed with a warning that Mail SNI is
        always enabled.

        * Functions that disable Mail SNI fail and make no changes.
      operationId: mail_sni_status
      parameters:
        - description: The account's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: mail_sni_status
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            description: |-
                              Whether SNI for mail is enabled.
                              * `1` - SNI is enabled.
                              * `0` - SNI is **not** enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return status of domain's SNI mail services
      tags:
        - SSL
        - SNI Email Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              mail_sni_status \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/mail_sni_status?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_mail_sni_status.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_mail_sni_status.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/mail_sni_status/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_mail_sni_status.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_mail_sni_status.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'mail_sni_status',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /SSL/rebuild_mail_sni_config:
    get:
      description: >-
        This function rebuilds the SNI configuration files.


        **Note:**


        * You **must** run this function after you change the SNI status through
        the UAPI's `enable_mail_sni` or `disable_mail_sni` functions.

        * Mail SNI is **always** enabled.
          * Functions that enable Mail SNI succeed with a warning that Mail SNI is always enabled. Functions that disable Mail SNI fail and make no changes.
          * Functions that disable Mail SNI will fail and make no changes.

        **Important:**

         When you disable the _Calendars and Contacts_, _Receive Mail_, _Web Disk_, _Webmail_, **and**  _Web Server_ [roles](https://go.cpanel.net/serverroles), the system **disables** this function.
      operationId: rebuild_mail_sni_config
      parameters:
        - description: |-
            Whether to reload the Dovecot service after the system rebuilds
            the configuration files.
            * `1` - Reload Dovecot.
            * `0` - Do **not** reload Dovecot.
          in: query
          name: reload_dovecot
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rebuild_mail_sni_config
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          success:
                            description: >-
                              Whether the system rebuilt the configuration
                              files.

                              * `1` - Configuration files rebuilt.

                              * `0` - Configuration files **not** rebuilt.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Start SNI configuration files rebuild
      tags:
        - SSL
        - SNI Email Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              rebuild_mail_sni_config
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/rebuild_mail_sni_config
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_rebuild_mail_sni_config.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_rebuild_mail_sni_config.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/rebuild_mail_sni_config/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_rebuild_mail_sni_config.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_rebuild_mail_sni_config.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'rebuild_mail_sni_config'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /SSL/rebuildssldb:
    get:
      description: This function rebuilds the account's SSL database.
      operationId: rebuildssldb
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rebuildssldb
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Start SSL database rebuild
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              rebuildssldb
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/rebuildssldb
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_rebuildssldb.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_rebuildssldb.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/rebuildssldb/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_rebuildssldb.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_rebuildssldb.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'rebuildssldb'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/remove_autossl_excluded_domains:
    get:
      description: >-
        This function enables AutoSSL for the domains that you specify.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: remove_autossl_excluded_domains
      parameters:
        - description: Enable AutoSSL for this domain.
          examples:
            multiple:
              summary: Multiple domains.
              value: domains=example1.com,example2.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domains
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_autossl_excluded_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Enable AutoSSL for specifed domains
      tags:
        - SSL
        - Auto-generated SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              remove_autossl_excluded_domains \
              domains='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/remove_autossl_excluded_domains?domains=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_remove_autossl_excluded_domains.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_remove_autossl_excluded_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/remove_autossl_excluded_domains/,
                {
                    'domains' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_remove_autossl_excluded_domains.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_remove_autossl_excluded_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'remove_autossl_excluded_domains',
                array (
                    'domains' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /SSL/set_autossl_excluded_domains:
    get:
      description: >-
        This function disables AutoSSL for every domain that you specify.


        **Warning:**


        This function **replaces** the list of any domains that you previously
        excluded. To add domains to the list of excluded domains, use the UAPI
        function `SSL::add_autossl_excluded_domains`.


        **Important:**


        When you disable the the [Calendar and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_autossl_excluded_domains
      parameters:
        - description: >-
            A comma-separated list of domains for which to disable AutoSSL.


            **Note:**


            If you do not include this parameter, the function will **enable**
            AutoSSL for every domain on the account.
          in: query
          name: domains
          required: false
          schema:
            example: example.com,example.net
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_autossl_excluded_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        enum:
                          - null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Disable AutoSSL for specifed domains
      tags:
        - SSL
        - Auto-generated SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              set_autossl_excluded_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/set_autossl_excluded_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_set_autossl_excluded_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_set_autossl_excluded_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/set_autossl_excluded_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_set_autossl_excluded_domains.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_set_autossl_excluded_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'set_autossl_excluded_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 66
  /SSL/set_cert_friendly_name:
    get:
      description: >-
        This function changes a certificate's friendly name.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_cert_friendly_name
      parameters:
        - description: The certificate's friendly name.
          in: query
          name: friendly_name
          required: true
          schema:
            example: TestCert
            type: string
        - description: The certificate's new friendly name.
          in: query
          name: new_friendly_name
          required: true
          schema:
            example: TestCert2
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_cert_friendly_name
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update SSL certificate's friendly name
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              set_cert_friendly_name \
              friendly_name='TestCert' \
              new_friendly_name='TestCert2'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/set_cert_friendly_name?friendly_name=TestCert&new_friendly_name=TestCert2
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_set_cert_friendly_name.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_set_cert_friendly_name.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/set_cert_friendly_name/,
                {
                    'friendly_name' => 'TestCert',
                    'new_friendly_name' => 'TestCert2',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_set_cert_friendly_name.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_set_cert_friendly_name.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'set_cert_friendly_name',
                array (
                    'friendly_name' => 'TestCert',
                    'new_friendly_name' => 'TestCert2',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/set_csr_friendly_name:
    get:
      description: >-
        This function changes a certificate signing request's (CSR) friendly
        name.


        **Important:**


        * You **must** call either the `friendly_name` or `id` parameter.

        * When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server [roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_csr_friendly_name
      parameters:
        - description: The CSR's friendly name.
          in: query
          name: friendly_name
          required: true
          schema:
            example: TestCSR
            type: string
        - description: |-
            The CSR's ID.

            **Note:**

            To retrieve a CSR's ID, use the UAPI `list_csrs` function.
          in: query
          name: id
          required: true
          schema:
            example: example_com_eda9d_543fb_a3009b4b01a592390866ab3a47c0df18
            type: string
        - description: The CSR's new friendly name.
          in: query
          name: new_friendly_name
          required: true
          schema:
            example: TestCSR2
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_csr_friendly_name
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update certificate signing request's friendly name
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              set_csr_friendly_name \
              friendly_name='TestCSR' \
              id='example_com_eda9d_543fb_a3009b4b01a592390866ab3a47c0df18' \
              new_friendly_name='TestCSR2'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/set_csr_friendly_name?friendly_name=TestCSR&id=example_com_eda9d_543fb_a3009b4b01a592390866ab3a47c0df18&new_friendly_name=TestCSR2
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_set_csr_friendly_name.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_set_csr_friendly_name.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/set_csr_friendly_name/,
                {
                    'friendly_name' => 'TestCSR',
                    'id' => 'example_com_eda9d_543fb_a3009b4b01a592390866ab3a47c0df18',
                    'new_friendly_name' => 'TestCSR2',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_set_csr_friendly_name.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_set_csr_friendly_name.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'set_csr_friendly_name',
                array (
                    'friendly_name' => 'TestCSR',
                    'id' => 'example_com_eda9d_543fb_a3009b4b01a592390866ab3a47c0df18',
                    'new_friendly_name' => 'TestCSR2',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/set_default_key_type:
    get:
      description: This function sets a user’s preferred SSL/TLS key type.
      operationId: SSL::set_default_key_type
      parameters:
        - description: |-
            The key type to set.

            * `system` — Use the system’s `ssl_default_key_type` value.
            * `rsa-2048` — 2,048-bit RSA.
            * `rsa-4096` — 4,096-bit RSA.
            * `ecdsa-prime256v1` — ECDSA prime256v1 (“P-256”).
            * `ecdsa-secp384r1` — ECDSA secp384r1 (“P-384”).
          example: ecdsa-prime256v1
          in: query
          name: type
          required: true
          schema:
            enum:
              - system
              - rsa-2048
              - rsa-4096
              - ecdsa-prime256v1
              - ecdsa-secp384r1
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_default_key_type
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update SSL TLS key type
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              set_default_key_type \
              type='ecdsa-prime256v1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/set_default_key_type?type=ecdsa-prime256v1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_set_default_key_type.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_set_default_key_type.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/set_default_key_type/,
                {
                    'type' => 'ecdsa-prime256v1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_set_default_key_type.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_set_default_key_type.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'set_default_key_type',
                array (
                    'type' => 'ecdsa-prime256v1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 92
  /SSL/set_key_friendly_name:
    get:
      description: >-
        This function changes a key's friendly name.


        **Important:**


        * You **must** call either the `friendly_name` or `id` parameter.

        * When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server [roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_key_friendly_name
      parameters:
        - description: The key's friendly name.
          in: query
          name: friendly_name
          required: true
          schema:
            example: TestKey
            type: string
        - description: The key's ID.
          in: query
          name: id
          required: true
          schema:
            example: a9b72_63971_2cb6d8897b362cfb1548e047d8428b8d
            type: string
        - description: The key's new friendly name.
          in: query
          name: new_friendly_name
          required: true
          schema:
            example: TestKey2
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_key_friendly_name
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update private key's friendly name
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              set_key_friendly_name \
              friendly_name='TestKey' \
              id='a9b72_63971_2cb6d8897b362cfb1548e047d8428b8d' \
              new_friendly_name='TestKey2'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/set_key_friendly_name?friendly_name=TestKey&id=a9b72_63971_2cb6d8897b362cfb1548e047d8428b8d&new_friendly_name=TestKey2
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_set_key_friendly_name.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_set_key_friendly_name.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/set_key_friendly_name/,
                {
                    'friendly_name' => 'TestKey',
                    'id' => 'a9b72_63971_2cb6d8897b362cfb1548e047d8428b8d',
                    'new_friendly_name' => 'TestKey2',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_set_key_friendly_name.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_set_key_friendly_name.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'set_key_friendly_name',
                array (
                    'friendly_name' => 'TestKey',
                    'id' => 'a9b72_63971_2cb6d8897b362cfb1548e047d8428b8d',
                    'new_friendly_name' => 'TestKey2',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/set_primary_ssl:
    get:
      description: >-
        This function sets a new primary SSL website for a dedicated IP address.


        **Important:**


        When you disable the [Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and Web Server roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: set_primary_ssl
      parameters:
        - description: The primary SSL website's servername.
          in: query
          name: servername
          required: true
          schema:
            example: hostname.example.com
            format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_primary_ssl
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update SSL website for dedicated IP address
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              set_primary_ssl \
              servername='hostname.example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/set_primary_ssl?servername=hostname.example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_set_primary_ssl.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_set_primary_ssl.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/set_primary_ssl/,
                {
                    'servername' => 'hostname.example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_set_primary_ssl.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_set_primary_ssl.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'set_primary_ssl',
                array (
                    'servername' => 'hostname.example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/show_cert:
    get:
      description: >-
        This function retrieves a certificate.


        **Note:**


        When you call this parameter, you **must** include either the `id` or

        the `friendly_name` parameter.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,

        Webmail, **and** Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: show_cert
      parameters:
        - description: The certificate's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestCert
            type: string
        - description: The certificate's ID.
          in: query
          name: id
          required: false
          schema:
            example: >-
              example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: show_cert
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          cert:
                            description: The contents of the certificate.
                            example: >-
                              -----BEGIN
                              CERTIFICATE-----MIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQIDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYyMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNVBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3PXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fWvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/daM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6PLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGj\UDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3WhcDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVwFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2agqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPaKm6r7YmwfLN/YMZBHXSR58oOGP9W-----END
                              CERTIFICATE-----
                            format: pem-certificate
                            type: string
                          details:
                            description: An object containing the certificate's details.
                            properties:
                              domains:
                                description: A list of the certificate's domains.
                                items:
                                  example: example.com
                                  format: domain
                                  type: string
                                type: array
                              ecdsa_curve_name:
                                description: >-
                                  The ECDSA curve that the certificate's key
                                  uses.


                                  * `prime256v1`

                                  * `secp384r1`

                                  * `null` — The certificate's key is **not** an
                                  ECDSA key.
                                enum:
                                  - prime256v1
                                  - secp384r1
                                example: null
                                nullable: true
                                type: string
                              ecdsa_public:
                                description: >-
                                  The certificate's key's ECDSA compressed
                                  public point, in hexadecimal format.


                                  * `null` — The certificate's key is **not** an
                                  ECDSA key.
                                example: null
                                nullable: true
                                type: string
                              friendly_name:
                                description: The certificate's friendly name.
                                example: TestCert
                                type: string
                              id:
                                description: The certificate's ID.
                                example: >-
                                  example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
                                type: string
                              is_self_signed:
                                description: |-
                                  Whether the certificate is self-signed.

                                  * `1` — Self-signed.
                                  * `0` — Not self-signed.
                                enum:
                                  - 1
                                  - 0
                                example: 1
                                type: integer
                              issuer:
                                description: A object that contains the issuer's details.
                                properties:
                                  commonName:
                                    description: >-
                                      The issuer's Common Name or Distinguished
                                      Name.
                                    example: example.com
                                    type: string
                                  countryName:
                                    description: The certificate's two-letter country code.
                                    example: US
                                    format: ISO-3166-1 (alpha-2)
                                    type: string
                                  emailAddress:
                                    description: The issuer's email address.
                                    example: username@example.com
                                    format: email
                                    type: string
                                  localityName:
                                    description: The issuer's locality or city.
                                    example: Houston
                                    type: string
                                  organizationName:
                                    description: The issuer's organization name.
                                    example: Organization
                                    type: string
                                  stateOrProvinceName:
                                    description: The issuer's state or province name.
                                    example: Texas
                                    type: string
                                type: object
                              key_algorithm:
                                description: |-
                                  The certificate's key's algorithm.

                                  * `rsaEncryption` — RSA.
                                  * `id-ecPublicKey` — ECDSA.
                                enum:
                                  - rsaEncryption
                                  - id-ecPublicKey
                                example: rsaEncryption
                                type: string
                              modulus:
                                description: >-
                                  The certificate's key's modulus, in
                                  hexadecimal format.


                                  * `null` — The certificate's key is **not** an
                                  RSA key.
                                example: >-
                                  a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                                nullable: true
                                type: string
                              not_after:
                                description: The certificate's expiration date.
                                example: 1601467200
                                format: unix_timestamp
                                type: integer
                              not_before:
                                description: The certificate's start time.
                                example: 1569844800
                                format: unix_timestamp
                                type: integer
                              signature_algorithm:
                                description: >-
                                  The certificate's OID hash algorithm
                                  signature.
                                example: sha256WithRSAEncryption
                                type: string
                              subject:
                                description: >-
                                  An object containing the certificate's
                                  ownership details.
                                properties:
                                  commonName:
                                    description: >-
                                      The certificate's Common Name or
                                      Distinguished Name.
                                    example: example.com
                                    type: string
                                  countryName:
                                    description: The certificate's two-letter country code.
                                    example: US
                                    format: ISO-3166-1 (alpha-2)
                                    type: string
                                  emailAddress:
                                    description: The certificate's email address.
                                    example: username@example.com
                                    format: email
                                    type: string
                                  localityName:
                                    description: The certificate's locality or city.
                                    example: Houston
                                    type: string
                                  organizationName:
                                    description: The certificate's organization name.
                                    example: Organization
                                    type: string
                                  stateOrProvinceName:
                                    description: The certificate's state or province name.
                                    example: Texas
                                    type: string
                                type: object
                              validation_type:
                                description: >-
                                  The certificate's validation type.


                                  * `ev` — Extended Validation.

                                  * `ov` — Organization Validation.

                                  * `dv` — Domain Validation.

                                  * `null` — The system could not parse and
                                  determine the

                                  certificate's validation type.
                                enum:
                                  - ev
                                  - ov
                                  - dv
                                example: dv
                                nullable: true
                                type: string
                            type: object
                          text:
                            description: >-
                              The parsed information from the OpenSSL
                              command-line tool.
                            example: |
                              Certificate:
                               Data:
                               Version: 3 (0x2)
                               Serial Number:
                               d1:e8:74:8c:d0:69:d2:55
                               Signature Algorithm: sha1WithRSAEncryption
                               Issuer: CN = example.com, C = US, emailAddress = username@example.com, O = Example, ST = Texas, L = Houston
                               Validity
                               Not Before: Apr 10 22:38:10 2013 GMT
                               Not After : Apr 10 22:38:10 2014 GMT
                               Subject: CN = example.com, C = US, emailAddress = username@example.com, O = Example, ST = Texas, L = Houston
                               Subject Public Key Info:
                               Public Key Algorithm: rsaEncryption
                               Public-Key: (2048 bit)
                               Modulus:
                               00:c6:9c:e3:37:1a:fc:e6:1b:e4:29:4d:8e:ee:ec:
                               bd:7a:52:12:ef: 34:71:64:77:e0:79:76:6d:ba:f0:
                               77:fd:f0:92:18:b0:84:c3:f7:12:3a:a9:b9:1d:16:
                               6c:a0:10:6d:f0:55:17:35:27:ff:81:a7:46:e6:d4:
                               36:97:34:01:3a:2f:6d:61:9a: 04:20:e3:fd:06:11:
                               8b:a4:5e:4f:6d:0d:93:8e:3b:cc:cb:19:b3:cb:74:
                               7a:54:82:ae:52:9e:46:31:7a:02:44:0b:7b:26:e8:
                               84:aa:91:2b:25:c1:42:0c:cc:5d:c4:d5: c4:cf:df:
                               de:4c:7c:22:99:ab:06:79:99:16:1e:a7:49:5b:9b:
                               89:97:18:3c:1e:4b:c6:c5:b5:b2:9d:7d:be:b9:91:
                               c6:08:38:7d:dc:81:18:2b:0c:2c:da:29:f4:aa:a2:
                               72:46:d9:c2:68:31:89:51:ab:32:af:7a:8d:9b:a7:
                               d8:b8:b5:37:21:03:91:1d:4e:d8:fc:f1:0e:1f:96:
                               17:d6:90:25:c1:3a:1a:76:4c:9e:2b:7e:b9:9c:f5:
                               86:0a:cf:ea: 2f:eb:bc:33:ee:69:49:b9:c2:e6:a0:
                               ef:ee:90:19:4a:2a:64:7e:ef:96:46:7e:7d:e2:35:
                               ec:d9:cf:34:42:7a:3d:c1:22:b9:68:a2:b3:02:a3:
                               7f:f5
                               Exponent: 65537 (0x10001)
                               X509v3 extensions:
                               X509v3 Subject Key Identifier:
                               6A:A1:EA:62:FB:B2:C4:AC:04:B0:43:DD:56:BE:8A:8D:FA:16:D3:F4
                               X509v3 Authority Key Identifier:
                               keyid:6A:A1:EA:62:FB:B2:C4:AC:04:B0:43:DD:56:BE:8A:8D:FA:16:D3:F4

                               X509v3 Basic Constraints:
                               CA:TRUE
                               Signature Algorithm: sha1WithRSAEncryption
                               3c:1e:f7:3d:20:1b:a2:bd:5c:d6:0f:2a:9e:f3:b0:83:bf:a9:
                               a0:90:9b:96:b1:a6:1e:8b:be:7c:f5:72:58:a0:48:3e:68: 43:
                               06:37:63:0a:cb:9c:23:98:c6:9e:f1:73:e8:4b:71:ac:07:fc:
                               d0:5c:e1:55:4f:be:a7:75:5a:57:da:a1:c2:46:63:8f:3a:70:
                               4c:42:3c:03:4c:a0:47:a3:fc: ae:15:03:25:a5:78:63:a2:73:
                               cd:47:d5:64:7c:d4:f5:85:f7:03:b8:b4:d8:95:75:6a:78:5c:
                               e6:c7:69:02:7b:a4:fc:4d:8c:80:7b:c7:1c:71:04:ba:53:71:
                               7a: ce:00:cb:0e:5e:21:89:02:ba:90:02:8e:b5:79:8e:84:50:
                               b0:21:63:b0:ac:19:80:c5:1d:a2:95:68:b7:ee:35:10:fa:db:
                               f5:bf:b0:16:b1:34:76:f2:d6:ee:07:3b:6d:b6:0c:1d:b4:e5:
                               53:50:23:b8:c4:bf:fe:d6:77:ec:89:68:a0:d8:dd:f4:f5:fa:
                               7d:f6:c4:72:02:b1:e8:87:f7:e1:16:71:80:2e:e7:94:7b:eb:
                               c6:a7:07:36:05:6d:34:b4:25:74:e9:c2:2c:9e:3d:bc:97:8e:
                               84:ce:cc:4f:1f:11:67:ad:30:f6:83:3e:be:bb:88:48:10:65:
                               f7:4b:2f:80
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export SSL certificate
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              show_cert
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/show_cert
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_show_cert.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to .../frontend/<theme_name>/api_examples/SSL_show_cert.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/show_cert/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_show_cert.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_show_cert.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'show_cert'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/show_csr:
    get:
      description: >-
        This function retrieves a certificate signing request (CSR).


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        and Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.


        **Note:**


        When you call this function, you **must** include either the `id`

        or the `friendly_name` parameter.
      operationId: show_csr
      parameters:
        - description: The CSR's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestCSR
            type: string
        - description: The CSR's ID.
          in: query
          name: id
          required: false
          schema:
            example: example_com_e095f_0ab2f_ebcbe4a571276f48562241411556647f
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: show_csr
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          csr:
                            description: The CSR's text.
                            example: >-
                              -----BEGIN CERTIFICATE REQUEST-----

                              MIIC3TCCAcUCAQAwgZcxFDASBgNVBAMMC2V4YW1wbGUuY29tMRYwFAYDVQQLDA1E

                              b2N1bWVudGF0aW9uMQswCQYDVQQGEwJVUzEiMCAGCSqGSIb3DQEJARYTbGF1cmVu

                              Y2VAY3BhbmVsLm5ldDEUMBIGA1UECgwLY1BhbmVsIEluYy4xDjAMBgNVBAgMBVRl

                              eGFzMRAwDgYDVQQHDAdIb3VzdG9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB

                              CgKCAQEAp092NvpqyT7mg2qDqZW1XetQGeo217o9r7AOONaTrNsMgbL/d31rQzpC

                              D65SPxJ/NSpovMi48tbue3A5W6+r2CN62oFk/d34N2swN1w11NTLzOfTPQgGnBe0

                              CRdqNonx68l8Cwj+auRMGakqxtaESOfx0T87Ngr/1CIqUbTzU0LembWh+1VI5Djy

                              2CRmRWKkSAAu7X/OJN7cfcPh7ReZc9Ha6VmzNxbutBDRcnCJVOAGMsv2Cg4mQZhg

                              yMC8KF1r/ktHneDdGJdypdrmdr0qkqzMwTaYIb6M/93Yp+bswGH4oyqa4GYeTpRu

                              2OOCeydxONOnYRZWfL0SnL2Gnvnd3wIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEB

                              AFlolzJbcviWcdZUv+PJ7G8cAqFAxa8a3W2a0Y1U0BaMrpDfuOHpQgOtO62rr+i+

                              hkrIReuk7Isyl6GoZkX17KhQ1Vo9aW8a8Ur7+0RGDbxRlK9jJWnvSFn6cMMqRSfA

                              DXpptxhqBFZJIZMc3pPX9Jqycuu8bxeIvUKeSMe3Jxcl1ZXEXX47FeRZxvd+WXF9

                              4Xu4KZXHdzb5tB6jPhzIaN0/3d92N/KhvCcnw3YC2fEGDkpOlZaoa7O72+aq5K3b

                              M1htFv9deAHqIHefV41iOrxUCIKIhdPIjvAm774lDHLzPpJVrshO/NpA74LEkny5

                              FMwKKx+6Jgx1HSWucn5kWek=

                              -----END CERTIFICATE REQUEST-----
                            type: string
                          details:
                            description: An object contaning the CSR's contents.
                            properties:
                              commonName:
                                description: The CSR's Common Name or Distinguished Name.
                                example: example.com
                                type: string
                              countryName:
                                description: >-
                                  The CSR's
                                  [ISO-3166](https://en.wikipedia.org/wiki/ISO_3166)

                                  country code.
                                example: US
                                type: string
                              created:
                                description: The CSR's creation date.
                                example: 1538265600
                                format: unix_timestamp
                                type: integer
                              domains:
                                description: A list of the domains that the CSR covers.
                                items:
                                  example: example.com
                                  type: string
                                type: array
                              emailAddress:
                                description: The CSR's email address.
                                example: username@example.com
                                format: email
                                type: string
                              friendly_name:
                                description: The CSR's friendly name.
                                example: TestCSR
                                type: string
                              id:
                                description: The CSR's ID.
                                example: >-
                                  example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
                                type: string
                              key_algorithm:
                                description: The key algorithm that encrypts the CSR.
                                example: rsaEncryption
                                type: string
                              localityName:
                                description: The certificate's locality or city.
                                example: Houston
                                type: string
                              modulus:
                                description: The CSR's modulus.
                                example: >-
                                  a74f7636fa6ac93ee6836a83a995b55deb5019ea36d7ba3dafb00e38d693acdb0c81b2ff777d6b433a420fae523f127f352a68bcc8b8f2d6ee7b70395bafabd8237ada8164fdddf8376b30375c35d4d4cbcce7d33d08069c17b409176a3689f1ebc97c0b08fe6ae44c19a92ac6d68448e7f1d13f3b360affd4222a51b4f35342de99b5a1fb5548e438f2d824664562a448002eed7fce24dedc7dc3e1ed179973d1dae959b33716eeb410d172708954e00632cbf60a0e26419860c8c0bc285d6bfe4b479de0dd189772a5dae676bd2a92acccc1369821be8cffddd8a7e6ecc061f8a32a9ae0661e4e946ed8e3827b277138d3a76116567cbd129cbd869ef9dddf
                                nullable: true
                                type: string
                              organizationName:
                                description: The CSR's organization name.
                                example: Organization
                                type: string
                              organizationalUnitName:
                                description: The CSR's organizational unit name.
                                example: Department
                                type: string
                              stateOrProvinceName:
                                description: The CSR's state or province name.
                                example: Texas
                                type: string
                            type: object
                          text:
                            description: >-
                              The parsed information from the OpenSSL
                              command-line tool.
                            example: |
                              Certificate Request:
                               Data:
                               Version: 0 (0x0)
                               Subject: CN = example.com, C = US, emailAddress = username@example.com, O = Example, ST = Texas, L = Houston
                               Subject Public Key Info:
                               Public Key Algorithm: rsaEncryption
                               Public-Key: (2048 bit)
                               Modulus:
                               00:bf:44:22:cb:13:2b:7f:41:9f:48:85:d6:2c:77:
                               03:cf:84:db:90:5c:5a:ed:e5:9c:cb:d6:9d:4b:fc:
                               67:58:b7:db:71:dd:eb:8e:5a:77:6f:03:5d:96:85:
                               60:dc:91:45:59:85:ff:9e:57:76:a5:b5:cd:dc:48:
                               25:89:3f:8f:17:c1:c2:1e:4d:ec:f0:08:1a:a9:cc:
                               2d:45:34:be:82:77:a5:e4:bb:0b:82:bc:82:51:c3:
                               ac:1b:ed:c3:a4:b3:e6:14:4f:ba:9e:39:af:08:ae:
                               3c:2c:15:bd:dc:03:17:93:01:95:4f:c0:2a:0f:3b:
                               46:5f:5e:6f:96:d5:b2:dd:53:22:a9:91:e4:36:8e:
                               f2:60:5b:ca:b3:72:e6:be:53:8b:9e:b6:72:26:04:
                               85:37:f4:89:c1:78:91:7d:46:96:71:c4:be:39:f3:
                               cc:1d:79:bc:33:61:5c:5f:76:52:4a:7d:d0:60:31:
                               79:96:44:6e:6a:77:72:70:1f:3f:08:24:e6:d1:50:
                               c0:6a:86:98:df:56:8b:ae:2f:c1:97:bc:ed:4c:70:
                               a1:a6:b2:7e:25:97:8f:95:73:a1:84:71:43:da:33:
                               48:d5:44:17:e1:28:1e:37:93:63:fa:ec:45:17:39:
                               e5:ff:62:90:6b:b2:eb:11:5b:32:b2:ce:51:0b:8a:
                               3e:95
                               Exponent: 65537 (0x10001)
                               Attributes:
                               a0:00
                               Signature Algorithm: sha1WithRSAEncryption
                               41:bd:99:89:7a:1b:c2:71:90:f7:5a:17:05:c9:77:c8:f0:0e:
                               62:0f:85:0d:fb:16:02:74:34:5f:7a:93:3e:50:8e:cf:f4:6f:
                               ee:ab:7b:c9:ef:7c:76:59:dd:85:fd:7d:4e:ac:95:9d:b7:ae:
                               8a:89:fc:1f:5b:ee:ee:6b:cd:9b:4e:2d:2a:fb:1b:32:8f:8f:
                               56:70:d1:42:c1:72:ed:04:4b:27:5a:ee:5a:e1:2b:6e:53:59:
                               aa:14:25:87:7f:2b:c3:7a:f5:b2:6c:71:2a:93:62:40:ca:87:
                               b4:fe:34:a1:95:77:1e:98:f1:71:5e:14:97:61:73:07:8d:bc:
                               3e:e1:f8:47:f7:00:8b:06:a5:1c:84:a3:88:9a:7b:37:74:5d:
                               34:a6:ae:22:ab:a3:b8:9f:d7:ab:60:9a:70:81:15:13:0f:d9:
                               ff:ab:7a:2b:fd:cb:96:04:ad:00:6b:e4:74:4e:59:57:a5:9e:
                               84:c7:74:d8:62:08:37:b3:ee:cc:74:b2:b6:26:e8:c0:37:32:
                               19:dc:1c:ff:97:4a:cc:1c:36:c3:a7:2d:ca:77:53:c4:1d:1c:
                               3c:36:5b:f8:90:46:01:48:49:61:9b:ef:bb:b3:a8:94:0b:3f:
                               50:51:93:29:9f:aa:9a:ab:ae:3d:3c:72:8a:0b:bc:2f:3f:19:
                               d7:5d:70:14
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export certificate signing request
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              show_csr
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/show_csr
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_show_csr.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to .../frontend/<theme_name>/api_examples/SSL_show_csr.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/show_csr/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_show_csr.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_show_csr.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'show_csr'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/show_key:
    get:
      description: >-
        This function retrieves a private key.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, **and** Web Server [roles](https://go.cpanel.net/serverroles),
        the system **disables** this function.
      operationId: show_key
      parameters:
        - description: |-
            The key's friendly name.

            **Note:**

            You **must** use either the `id` or the `friendly_name` parameter.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestKey
            type: string
        - description: |-
            The key's ID.

            **Note:**

            You **must** use either the `id` or the `friendly_name` parameter.
          in: query
          name: id
          required: false
          schema:
            example: >-
              example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: show_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          details:
                            description: An object of the key's details.
                            properties:
                              created:
                                description: The key's creation date.
                                example: 1365633415
                                format: unix_timestamp
                                type: integer
                              ecdsa_curve_name:
                                description: "The ECDSA curve that the key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The key is **not** an ECDSA key."
                                enum:
                                  - prime256v1
                                  - secp384r1
                                example: null
                                nullable: true
                                type: string
                              ecdsa_public:
                                description: "The key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The key is **not** an ECDSA key."
                                example: null
                                nullable: true
                                type: string
                              friendly_name:
                                description: The key's friendly name.
                                example: TestKey
                                type: string
                              id:
                                description: The key's ID.
                                example: >-
                                  example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
                                type: string
                              key:
                                description: The key's contents.
                                example: >-
                                  -----BEGIN RSA PRIVATE KEY-----

                                  MIIJJwIBAAKCAgEA4yilqsoCdEpiNOyLcPJ4FLT7vgwaLdOBeJLTMUeV2uZM4v65

                                  /tiZe7H0soDp1C55SCr3uEIEa7Lq7RUZ+F5p67BgRR19rmerKGxfN7N5Vu97pfTw

                                  W1f+lVsxUF/56lVeoAmm4okU98xJHiGGlI8ZHGJbUMYfLPy0OrA+gNwMHqMVOv1B

                                  SgpbEWCILMvnvtp0rwPutjnPVX2Dj40ia40L4Wqvp+0Yg7mZyhIOl+q6VZVIdXZs

                                  lR4ZywfRBYt3ieFBDYMyNw9wN3Xy44fCpHc77+ho84W3BqrGaWSSDyf6UkZGD5mf

                                  ohGf2JSp+c8J6H7hsxo7pta3K1diVXFOSfnaA+k56zW445XruwYs/SN/zvGetGi6

                                  uqhMAcVRQcYCmLCixcC6RkcUx3exxgR4q3gthDnFvWC4+NuTh8/K0BcxcuCEhRug

                                  /MfVfO3+f7RJFSJPFb9m9Lf4HHBSVkDP5WtG4XiBKCe++9Wuvxbd4QxS7YrnSopN

                                  KxkuHKswH8ONpADMYDqfLODMhNrslHNHu95Nv7AlQr8weLqMGWMp7GFqzXcl39Rn

                                  VkF4Bxd3bAAsMN8/JvanMKCPjTTDrfzVFZcmHXPYOljYDdY1xfIstYVtbyFkUHZP

                                  2RPPBaPUAt90lzrKGVF8a2vdIKRiey5SZ5qu9c/mGri3oz7Lkk7qkNPAqDMCAwEA

                                  AQKCAgA3f9raG3j2CKZt381Bzzvfc0h+al6LC736Q4Ut6RuH2/S1ER9IUItPWW87

                                  nZuDp8ciBr13W0nRNmmHezxZHlgqqXEb8dSfI90Bh1jMNyFSSDihl3KSHrGotBsc

                                  VBavViREXZdUicGBuXuxtkYno96yvKUq2v0K9MLkA+OBgEHFynqJaw7klBsj573d

                                  lAQO8TjI+eD8zKsHbB8Ul5rtRAy/Cl3YXWk75cDZSggevc7A0jRd3o0w8aXDoSlE

                                  fYq7OTm3n3JJWZBFPKAXTzgTDr6qItJhjS4IxXsq7RNyeIYES/8aGKKT6lJvjALr

                                  cdYt47IpHCOu447lG/h+f6xtDophLGZoAirO7lJFRVfLJh76sLF12bpXJKbbmMN+

                                  aut0nM+MLEw8A5K9OV24jJ/3+afj//5789asIyvNaQFPOX23SdLX0QbA5QWvJt2t

                                  WvvpS3ubcIJaBEMTK8asEBC68eUW0BBKJaSiYNzecUFYCBjQlxKsIrYuWZoW6fMy

                                  Rel+cnqMdiH7r2p6RmgF5c9myDwq3E47jE+VrOy8uhw7EMQvT8+YSKaIbgtFZcUS

                                  U02BDRB7gWNa842m6nGs5tj5xFNQ6Wt410vilTwL+6zCQqJaKmcdE3woiIgSdrw5

                                  MssAHHjqo7QJthZfbpUAUTc6jGPNO13U1ediIRAGdQW5ALqTwQKCAQEA884bmFFZ

                                  LTewHIv1PJFfNxVZfk3C7LhWE2JcI/5P/YrN4ZA8G08OYhgxqa5XnsHHQPwMM85i

                                  1HeOoPwqgTMIyLDX/Sf88+eW3ef4V2M1Y4op0ahWFEwbwXKGxOhncElObN7dfZUw

                                  VlxCReaiw2XQAGRqtQC0f+9dZysqPJr+Rz6poTiOtm7DcpW/WiGfBPvVhzBENyqo

                                  uL9V3vCWYPJSLtCexECoGoPSpHKgUkwbh3+ra8SfG6FOIBj4PpMB82R7oPDjIyXF

                                  1VDfb0EwYQlKxyZoP9+NPT2MhZv/hF/Mbm/5LolVHx92hO9q6yxS6nvaFmEPr9fY

                                  1EOTWzzPOA+VyQKCAQEA7oVioaTqxENt+wHITZq100iYUpm4X1N1eENTp97QyQbQ

                                  OVR/t8iGLUdvOZdIxBSTS3JFQ8TNcGDPPc+o319QGdZABNnKwFGY3Ss+5QgVeX6n

                                  0WKdxCRelUOUB174aBeXcJCKplh6xBUrLfSZxvZQQb7fv0Mb+2eKUBKTymvES1kp

                                  Ydn1T0vCCHA3bVpaHuqliCoDSX3RmQICZlfSgCGBbAkmU8RuxDd9yR9l7O9MXUmL

                                  sqlsw6hvbUt+7Y13YlDtyX8gbCwEEYsoALOotY1xNfXnyZKTAXhrg+xsQLrURYZU

                                  oZiCJyK/mHCWRTPVkt89wq4IexbJ9hqlRjzpmlr8GwKCAQBxRSCs855q06SOnreh

                                  HCkQfmrFs3sMX9gdyWTllBG1yfc9BLXoOiKEkJkCLG2o5H6eQnuo1go0jBdH0+Ar

                                  hnpeQ0sV4q4y4zXEgzFt6Dm1tUsYjQzxASskBQF4GkF0eZpmGmTtI5MBjHt93llg

                                  Tr0EcaLh1SIHDj5m4DcPUTMyBnro3E3xlCRZ6Biu10/6EMZzuIj42Gjq7HoIyd4T

                                  zIFCHsqkgyWWrAgBPwAdPB7OJRKPTxpcy+RwJSmwaLxPSC/n5gKhIbt4D8q+9Zp0

                                  esyzGbT1d/c2rJHMwV1FMvzXkk5CwKs7enKl8FXMTRt4tXHtU8rl93JVq8+aY/Yi

                                  JZuBAoIBAERG2lz7IFjeFHVtpTDRwIqilTfP2P8wnMe4PhInrgxdbu16SrUJKZ98

                                  e1I5BBNc8G0AYONtSoGItMo0z1phpkQ/GERLM8aplOB6qJ5XGg6VOuStHgwvfQOt

                                  PIp/nQvu9OK7/XRwj3Phu2KESiCyEXdAdDwDsdbdZLJXHwcqoh4Pf9EK2zW/seNI

                                  fBVJb9K5yHiZzicTZRQvhxBUw2T6MloCpH4GFM8GM3OHEV4pgeqSSvLxnLjFVmAq

                                  5EKL5Ei4cdjkExvj3aZH90N8KicOPgH8SkVhN8OL/Prein5c/LaKJV+8kEUzpTS1

                                  xc45cEGCteMsfjD97QINzpG0jgopUVECggEADIaKsx8NUQT3hm0wHRanEFJnQH5H

                                  zxaQjWbsjm2uz0KROPNIK1X5L8kypsb+EzlJtvWUqxPaOaTv4DZVpFaVzk8/2PPG

                                  sYR3mUjqMqNFYMrNwYZAXvJ/huzDPqq6+w2Pn9jcAifHNw3S8UR650v8gl7BU4fV

                                  BvhamG8JelvwLqeGWoikST9NBXVqG5IKBpUkUiFOMUNmRih9ooKvhy7GosoK8MWb

                                  mhWo1v8TTSXSagACUhAoIzb6mMN/VFC5WDbFx5AEB/G9tq/zmTqQkuo39dvgl30w

                                  yZGRNwc1aFf1Kxeven10/JN9ipp0mTa7NYSdn0RAe9ZRp5cCkgmktqmB0g==

                                  -----END RSA PRIVATE KEY-----
                                format: pem-private-key
                                type: string
                              key_algorithm:
                                description: |-
                                  The key's algorithm.

                                  * `rsaEncryption` — RSA.
                                  * `id-ecPublicKey` — ECDSA.
                                enum:
                                  - rsaEncryption
                                  - id-ecPublicKey
                                example: rsaEncryption
                                type: string
                              modulus:
                                description: "The key's modulus, in hexadecimal format.\n\n* `null` —\_The key is **not** an RSA key."
                                example: >-
                                  a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                                nullable: true
                                type: string
                              modulus_length:
                                description: "The length, in bits, of the key's modulus.\n\n* `null` —\_The key is **not** an RSA key."
                                example: 2048
                                nullable: true
                                type: integer
                            type: object
                          text:
                            description: >-
                              The raw information from the
                              [OpenSSL](https://www.openssl.org/) command-line
                              tool.
                            example: |
                              Private-Key: (2048 bit)
                              modulus:
                               00:b1:16:ee:3e:de:ff:41:3c:f2:cb:b5:c5:0a:3d:
                                  c8:0d:64:bc:02:9f:e1:90:c9:7f:da:e8:03:e6:2c:
                               47:9f:e4:ff:5e:0d:95:64:5d:32:c2:b7:c9:01:ae:
                                  30:e5:17:da:82:78:f4:15:b9:46:40:eb:8b:99:5c:
                               cc:4b:e4:2a:e4:ee:0e:28:29:01:79:ee:d4:90:bc:
                                  5d:9e:ab:b0:46:7c:de:4f:df:b2:d7:d1:76:89:88:
                               ad:f3:6c:36:f3:a0:07:8c:90:88:19:52:0a:68:a1:
                                  4d:c0:26:9e:8d:53:70:91:83:87:f4:8a:d9:b5:0f:
                               a7:ed:31:f3:8f:34:d2:ca:e7:d1:31:ea:42:17:5d:
                                  4d:48:7d:b3:73:07:72:40:9a:58:55:c8:b3:b6:ff:
                               c2:b5:f6:ba:64:bd:3e:06:62:42:cd:44:0b:d2:f1:
                                  76:5e:bb:20:55:47:d4:10:86:2d:ec:6b:e7:d2:0e:
                               5d:99:48:ca:4d:66:35:e1:1a:db:1b:96:0a:41:64:
                                  aa:c4:1b:1f:9d:90:e3:2e:aa:70:61:f7:77:b6:7b:
                               f7:44:22:d8:73:0b:53:84:63:c3:f4:a4:19:e2:07:
                                  f6:0b:42:8a:3d:70:cb:92:24:80:44:e7:36:5d:01:
                               a2:e0:e5:cd:50:e1:f7:7c:5a:9a:b5:da:c4:0f:c4:
                                  73:f5
                              publicExponent: 65537 (0x10001)
                              privateExponent:
                               5b:c3:ae:21:16:1c:df:09:5e:27:01:41:e1:54:b2:
                                  5d:7e:5d:8e:5e:9a:dc:14:0e:14:b9:35:8c:08:55:
                               f5:1d:0c:d7:07:e2:e9:e7:01:6e:b5:1d:8b:a9:5f:
                                  dc:d6:c7:7b:e4:81:56:e0:72:ef:21:1f:6d:91:10:
                               ac:22:c7:b7:69:44:1c:bb:62:f0:74:39:e1:e6:39:
                                  fd:06:aa:89:5c:1b:36:f8:8c:0c:19:96:7b:1e:40:
                               45:6b:45:ee:68:76:80:f8:44:0e:1a:dd:19:ea:bc:
                                  07:5d:fb:ba:f0:09:dc:dd:73:8d:dc:85:83:b5:61:
                               27:20:43:3d:69:f9:f0:f9:e1:73:76:29:5a:b0:05:
                                  23:65:47:e8:39:f0:21:be:17:84:73:0a:08:15:4e:
                               7b:e2:14:6a:72:c7:d3:13:ff:98:ee:96:c9:40:a3:
                                  d3:0d:6c:90:48:25:7c:79:74:bf:be:fa:18:62:4d:
                               c9:95:d4:d9:1a:47:59:4b:98:9a:2f:95:94:f4:4e:
                                  78:cc:39:ef:9f:f7:6e:eb:db:cb:e5:95:ef:8f:ee:
                               5b:bf:c7:2a:29:e5:76:16:28:53:04:8e:ef:3f:66:
                                  6f:34:a1:21:09:d6:da:ac:dd:ad:8c:2e:72:78:87:
                               01:45:f2:fa:3b:b9:23:2d:cf:5f:66:dc:c7:1c:0b:
                                  e1
                              prime1:
                               00:e9:14:c4:18:92:16:8e:ad:fd:cf:17:f0:8c:f7:
                               55:e0:58:3d:e3:cd:bd:4d:4e:00:64:ee:f0:cf:a5:
                                  b0:14:19:85:ea:03:a8:be:18:78:34:3b:04:8c:b8:
                               be:9a:ee:fc:0a:3e:6f:d2:8f:8f:fd:31:2d:02:97:
                                  6e:bb:18:5b:9c:6a:85:6e:25:95:a4:40:4e:0b:91:
                               a1:c3:85:bd:84:0c:d5:72:34:13:12:d9:20:56:52:
                                  06:53:aa:06:2d:d0:61:2b:0b:d9:94:c6:d7:62:0f:
                               c9:7d:17:cc:81:39:b3:59:e5:ce:77:d5:8a:82:ab:
                                  2d:37:8a:51:49:3a:aa:c7:37
                              prime2:
                               00:c2:80:b7:b4:85:25:37:30:b4:45:f3:3a:69:cf:
                                  c3:86:43:89:db:d4:09:6b:72:54:a6:89:b4:a7:43:
                               3c:dd:da:c6:46:89:93:0a:05:9a:8c:d6:05:5c:6a:
                                  4d:34:1e:84:5b:14:28:b7:ef:d2:be:a5:10:9c:5f:
                               e7:35:fb:15:e2:9e:4a:60:0a:73:01:f0:55:6c:75:
                                  25:8a:9b:b0:32:d3:28:41:11:e2:85:2d:f6:35:76:
                               6c:68:14:ba:02:98:44:82:e1:c6:ca:f7:07:78:ca:
                                  ff:1a:60:3a:e1:88:91:55:a1:ae:11:46:29:4b:f0:
                               0f:e0:de:8a:0d:26:91:5c:33
                              exponent1:
                                  1d:2a:ad:13:4a:0c:aa:94:19:43:b6:02:33:11:ac:
                               5c:63:8e:73:18:46:cd:0a:aa:bf:f6:aa:89:c1:79:
                                  14:3a:d1:68:24:47:14:6a:a9:78:17:be:8d:01:7d:
                               50:94:01:54:22:d6:09:6a:4f:a1:66:6a:f4:7d:10:
                                  ad:36:f2:17:d3:b8:98:bc:f9:49:d1:86:32:aa:69:
                               ac:b6:ea:ad:40:91:e1:35:a5:01:61:cc:4b:20:fe:
                                  8b:af:a6:10:4b:98:2d:33:d1:69:6d:ac:7c:27:ef:
                               95:c8:c9:9d:8e:23:e4:66:fe:7c:3e:6b:93:c8:69:
                                  e3:1e:5a:e7:a8:00:c0:e7
                              exponent2:
                               6d:2e:3b:f0:c5:5c:a2:a2:60:4f:73:bd:32:70:41:
                                  dd:38:44:46:75:bb:e3:e8:85:c4:06:40:b6:33:74:
                               13:45:1f:4f:b1:22:2c:da:00:6b:56:28:24:3c:37:
                                  a2:2e:0f:35:e1:17:0a:49:41:0f:6b:30:eb:d6:99:
                               bf:1f:76:a5:83:1d:54:d4:08:c2:e9:d9:c9:cb:e8:
                                  8a:e9:e1:fa:65:b5:8e:f1:2f:2a:7b:26:5d:d4:5f:
                               fd:fc:c4:7d:78:63:dc:e4:47:e6:de:cb:fe:ee:54:
                                  4c:c5:ff:c7:62:15:d2:ef:b2:fa:57:5c:0f:18:6e:
                               91:57:da:3e:8f:8b:c1:29
                              coefficient:
                                  00:bd:71:a9:3c:18:7b:0c:93:ab:d5:bf:f3:be:ea:
                               35:45:86:ce:60:0f:67:b3:2d:ba:5f:cf:9f:b6:1a:
                                  13:27:cb:da:e7:ad:f3:c7:c2:06:7c:9e:00:d5:6c:
                               07:74:71:2c:35:39:c9:4b:24:cc:11:fd:60:c2:a2:
                                  0b:28:b9:8b:4d:48:c6:0d:f0:39:34:dc:e2:c9:3a:
                               b8:c6:64:0a:17:df:c4:f1:3d:fb:18:0b:af:ed:27:
                                  3f:98:3b:e1:24:72:fc:5d:af:2c:e3:b6:07:3e:e1:
                               2f:fe:db:44:b0:8b:c3:e5:72:82:e5:a4:4a:3a:37:
                                  8f:c4:9f:db:e9:1c:33:6a:f3
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Export private key
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              show_key
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/show_key
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_show_key.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to .../frontend/<theme_name>/api_examples/SSL_show_key.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/show_key/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_show_key.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_show_key.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'show_key'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/start_autossl_check:
    get:
      description: >-
        This function initiates an
        [AutoSSL](https://go.cpanel.net/whmdocsManageAutoSSL) check for the
        user.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail, and  Web Server [roles](https://go.cpanel.net/serverroles), the
        system **disables** this function.
      operationId: start_autossl_check
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: start_autossl_check
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Start AutoSSL for current user
      tags:
        - SSL
        - Auto-generated SSL Certificates
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              start_autossl_check
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/start_autossl_check
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_start_autossl_check.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_start_autossl_check.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/start_autossl_check/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_start_autossl_check.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_start_autossl_check.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'start_autossl_check'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 68
  /SSL/toggle_ssl_redirect_for_domains:
    get:
      description: >-
        This function enables or disables secure redirects (HTTPS) for the
        cPanel account's domains that you specify.


        **Important:**


        To call this function, one of the following conditions **must** exist:


        * AutoSSL **must** exist on the domains for which you enable secure
        redirects.

        * A valid SSL certificate **must** exist for each domain for which you
        wish to enable secure redirects.

        * You **must** own the domains for which you wish to enable secure
        redirects.
      operationId: toggle_ssl_redirect_for_domains
      parameters:
        - description: >-
            A comma-separated list of the cPanel account's domains for which to
            enable or disable secure redirects.


            **Important:**


            To enable or disable redirects for addon domains, you **must** pass
            the addon domain **and** its subdomain.
          in: query
          name: domains
          required: true
          schema:
            example: main.example,addon.example,addon.main.example
            type: string
        - description: |-
            Whether to enable or disable redirects for the specified domains.

            * `1` — Enable.
            * `0` — Disable.
          in: query
          name: state
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: toggle_ssl_redirect_for_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The domains for which the function enabled or disabled
                          secure redirects.
                        example:
                          - main.example
                          - addon.example
                          - addon.main.example
                        items:
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable or disable secure redirects
      tags:
        - SSL
        - cPanel Account SSL Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSL \
              toggle_ssl_redirect_for_domains \
              domains='main.example,addon.example,addon.main.example' \
              state='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSL/toggle_ssl_redirect_for_domains?domains=main.example%2caddon.example%2caddon.main.example&state=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSL_toggle_ssl_redirect_for_domains.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SSL_toggle_ssl_redirect_for_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSL/,
                q/toggle_ssl_redirect_for_domains/,
                {
                    'domains' => 'main.example,addon.example,addon.main.example',
                    'state' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSL_toggle_ssl_redirect_for_domains.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SSL_toggle_ssl_redirect_for_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSL',
                'toggle_ssl_redirect_for_domains',
                array (
                    'domains' => 'main.example,addon.example,addon.main.example',
                    'state' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /SSL/upload_cert:
    post:
      description: >-
        This function uploads a certificate.


        **Important:**


        * Due to the limited field length of HTTP GET method calls, you **must**
        use the HTTP

        POST method. For this reason, you **cannot** use a cPanel or Webmail
        session URL to

        call this function.

        * When you disable the Calendar and Contacts, Receive Mail, Web Disk,
        Webmail, and

        Web Server [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: upload_cert
      parameters:
        - description: The certificate's contents.
          in: query
          name: crt
          required: true
          schema:
            example: >-
              "-----BEGIN
              CERTIFICATE-----/nMIIDcTCCAlmgAwIBAgIFAU+BNVgwDQYJKoZIhvcNAQEFBQAwUTESMBAGA1UEAwwJc2lza28udGxkMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGY1BhbmVsMQswCQYDVQQIDAJUWDEQMA4GA1UEBwwHSG91c3RvbjAeFw0xNDEwMDYyMjI2MTlaFw0xNTEwMDYyMjI2MTlaMFExEjAQBgNVBAMMCXNpc2tvLnRsZDELMAkGA1UEBhMCVVMxDzANBgNVBAoMBmNQYW5lbDELMAkGA1UECAwCVFgxEDAOBgNVBAcMB0hvdXN0b24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9zx6zGiHdmWA0dKtoXmJiWXpZ9E3PXx3YHsjFEWW7e5pH0vZ+jVMzDmm5nsJ7RXrAkZO1IvpIpVLvoQfiJOWVvkD+o9fWvoK1tWJS72FSgPju+58mA2ieBuc87A790Pzuv1P3NR3zFLAjUR99zkHR1fpri/daM3PBWO8ET48FWkyU1kOeZaUlF67/+wrEiNgg+t1qhKOCAB61PdNVkLaSGHimksuC+Czk8Kq9nuS0E0TCnDtjjEyJ455FUcaCfczlTb8xkB/F9ORe74yTzD+vlk0tFMG6PLj/ajIwWqwO0qmQ8wX3NRxkWgGz5kVO1wrVJarKQ5EYQ3/mgvit0v6dAgMBAAGjUDBOMB0GA1UdDgQWBBRw+wKBo34+bgexjAa3EMDsgSCd7zAfBgNVHSMEGDAWgBRw+wKBo34+bgexjAa3EMDsgSCd7zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCHRXIs53opzKM2rM8Qe8lcw524WK6hqy2EWrZHp78N7rU7/6DQ/I3hv3WhcDDIO04I2/Xhe88MLBaLoM367Ya+vy7CaLr14aLi/SfQszMA0ALBvMao+Fis0iVwFYq/NLgSXw+fgnpFskt8v8iQZ+4Kaal8U8e9sVgu8m0RgO7rzym1eRiIKpsKd1rh/SD7LbSN7M7TRL3QqF7ltw9sQhAAsQcRaBBF21pdWrqhiGZ+Eioo3hhgwNavH2agqz78ddHwrFpHFwrEeUk1OfpPb76MYIce7xIy/4oQNdg6fOq4l/FrajBv+WkzDVPaKm6r7YmwfLN/YMZBHXSR58oOGP9W/n-----END
              CERTIFICATE-----"
            format: pem-certificate
            type: string
        - description: The certificate's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestCert
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                crt:
                  description: The certificate file.
                  format: pem-certificate
                  type: string
                friendly_name:
                  description: The certificate's friendly name.
                  type: string
              type: object
        description: The certificate's contents.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: upload_cert
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            created:
                              description: The certificate's creation date.
                              example: 1569844800
                              format: unix_timestamp
                              type: integer
                            domains:
                              description: A list of the certificate's domains.
                              items:
                                example: example.com
                                format: domain
                                type: string
                              type: array
                            ecdsa_curve_name:
                              description: "The ECDSA curve that the certificate's key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The certificate's key is **not** an ECDSA key."
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: "The certificate's key's ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The certificate's key is **not** an ECDSA key."
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The certificate's friendly name.
                              example: TestCert
                              type: string
                            id:
                              description: The certificate's ID.
                              example: >-
                                example_com_c69ce_37ff5_1397169490_169c717cb2c260281df792788accf041
                              type: string
                            is_self_signed:
                              description: |-
                                Whether the certificate is self-signed.

                                * `1` — Self-signed.
                                * `0` — Not self-signed.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            issuer.commonName:
                              description: The issuer's Common Name or Distinguished Name.
                              example: VeriSign Trial Secure Server CA - G2
                              type: string
                            issuer.organizationName:
                              description: The issuer's Organization Name.
                              example: VeriSign, Inc.
                              type: string
                            key_algorithm:
                              description: |-
                                The certificate's key's algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: "The certificate's key's modulus, in hexadecimal format.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                            modulus_length:
                              description: "The length, in bits, of the certificate's key's modulus.\n\n* `null` —\_The certificate's key is **not** an RSA key."
                              example: 2048
                              minimum: 1
                              nullable: true
                              type: integer
                            not_after:
                              description: The certificate's expiration date.
                              example: 1601467200
                              format: unix_timestamp
                              type: integer
                            not_before:
                              description: The certificate's start date.
                              example: 1569844800
                              format: unix_timestamp
                              type: integer
                            signature_algorithm:
                              description: The certificiate's OID hash algorithm signature.
                              example: sha256WithRSAEncryption
                              type: string
                            subject.commonName:
                              description: The issuer's Common Name or Distinguished Name.
                              example: example.com
                              type: string
                            validation_type:
                              description: >-
                                The certificate's validation type.


                                * `ev` — Extended Validation.

                                * `ov` — Organization Validation.

                                * `dv` — Domain Validation.

                                * `null` — The system could not parse and
                                determine

                                the certificate's validation type.
                              enum:
                                - ev
                                - ov
                                - dv
                              example: dv
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Import SSL certificate
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --input=json --output=jsonpretty \
              --user=username \
              SSL \
              upload_cert
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: |+
            POST /cpsess##########/execute/SSL/upload_cert HTTP/1.1
            Host: example.com:2083
            Cookie: ###################################
            Content-Type: application/json
            Content-Length: 0

      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /SSL/upload_key:
    post:
      description: >-
        This function uploads a private key.


        **Note:**


        Due to the limited field length of HTTP GET method calls, you **must**
        use

        the HTTP POST method. For this reason, you **cannot** use a cPanel or
        Webmail

        session URL to call this function.


        **Important:**


        When you disable the Calendars and Contacts, Receive Mail, Web Disk,
        Webmail,

        **and** Web Server
        [roles](https://go.cpanel.net/howtouseserverprofiles#roles),

        the system **disables** this function.
      operationId: upload_key
      parameters:
        - description: The key's contents.
          in: query
          name: key
          required: true
          schema:
            example: >-
              "-----BEGIN RSA PRIVATE
              KEY-----\nMIIEowIBAAKCAQEAyeiHvMuJuVk8ZEY6wMzUS1g0eWaHaIWmIRe+Qrn6SwiRrm1p\npsJCiGPPPQGOSg4FzrMXqE0zsi/Tk3hUO/EEsi7CcZe8cUanjlUeXhiwrb86FCMF\nOb9siRHQvlss7VCg8ZGXXTWZgf5yD3A1xPwdayYwF2Tc7GkNcZGUAI58geuYaq+U\nGiLczRGZep1IQ0b1cZnqDvGMx6AS6hiDqLISjnmXYY2OhG6Uyp+SuinjYzLPJ6eO\nN/7i9qqbcGmt0ssddmhR897+bTEom5SlSuyi03KZ9Rn4ZmNJgOsup9MclSBGxBys\nb6MuuM3N0/tF5QuwmDc8H6h2rNBP9vGV7RTTXQIDAQABAoIBAFS/WVoRRLmbjxG3\nuKl8UA9f8oaSVnu0vUpeoOl5Dmm4Kw2/tvzbxPlii3Xb1VGYGS/tVBy8atp74J6h\nfxm5zHLN1afAPMR/F41ShPCSBHapMUOKf4MBqhjOdYOw2Way1RsQNSxWdxxtJIr+\nWlNYTzDOUpk/KMvCPHZS2IBzTidpcFpDQ3pyDXjOoKJJH0EQWPtvxJNGrFqmU29D\n9WBqQemHnDrzg3s7JzQ5cGpbbCE+QX8IckNkslAkyhm771CtqWdeo+c45e6YfGcx\nKuAy1zGSVzQBuitzYoMUOL5olXLEj8fHzXd/cZP4yCyyabcGz2vi6luxF+28l1OL\nG1axyLECgYEA+bD5B+Y/Dp5hZ/uVR1bbvyraQpwbDesS1zgnJ53KOIl926dnWzIt\nUvM46+c9IF+UJrtzwIB6IvjAQioNFrK36bHgNGzNf9WQ54NN172qveaFLdW34z/i\nGR2ix/efm9OC41QREQ/5IKV07TibCwVazVBWascMPkH7FnguTvTCiosCgYEAzwJ+\nGPlIWjK+sqkK5JMUyuH43qAvgVfkZV906JpNRQH0Mob3bC0nXN95EoTwWXk68ULT\no1GHv9XLbj8e+Ok7kpJQZT5vEZnDN+cy3jdTLCvcjU5Q3ToImOTp9isSAFWRTbtk\nyabLNoIIsTR/ZwwPFTZcRiK2d8k7ZhcRKdfGnrcCgYAPZ06FoTukoDqsGoYkB4S4\n72DVmSHGIwlfg5ROylouULUV9ubWZmsLYfvR+cr4k0zlcsz6RDLEs4nQyx1RmCbm\nYNXPBiNLTpaI4b3MoGPHIVB3+mZEu60sFXr0UR9kkpDRi18eKVkaHXrwI3zVGjh2\n0Az0u2DS+mkOAs4AivLxbwKBgQC0XPqbLc+Bb0dCCREJmLD8GCkrZ6wcaQUB4krN\nQ2vhnVM0Fu5K3Yi3XapynUuA2aSmgtA9MxMw7MkjlHGa9DPIgBz2KZDCaBN0iMeE\nX/XivZCbucmxBxhohsLmjh5QFj3U2Vp2bBIQuvlx1EjQ8uvNUqDRJvuOoNFVIPH+\nYBeZPwKBgA//kXfNtNMHOpch699i3rgTzbRFDmGwsr1otzvJsXw7Pr2bM4WIzUJy\nG2SUSUlQRSZK4+BBKT9S0d7TynJD6X/6R7IBotZbfXs1myYxEsKj89/BQmr47x2h\nHjYVCClNoJlsbd5C2yu1R3PikweWGoVaxE3c+AN5knqjwJ0g21Cf\n-----END
              RSA PRIVATE KEY-----"
            format: pem-private-key
            type: string
        - description: The key's friendly name.
          in: query
          name: friendly_name
          required: false
          schema:
            example: TestKey
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                crt:
                  description: The key's contents.
                  format: pem-private-key
                  type: string
                friendly_name:
                  description: The key's friendly name.
                  type: string
              type: object
        description: The certificate's contents.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: upload_key
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSL
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            created:
                              description: The key's creation date.
                              example: 1569844800
                              format: unix_timestamp
                              type: integer
                            ecdsa_curve_name:
                              description: "The ECDSA curve that the key uses.\n\n* `prime256v1`\n* `secp384r1`\n* `null` —\_The key is **not** an ECDSA key."
                              enum:
                                - prime256v1
                                - secp384r1
                              example: null
                              nullable: true
                              type: string
                            ecdsa_public:
                              description: "The key’s ECDSA compressed public point, in hexadecimal format.\n\n* `null` —\_The key is **not** an ECDSA key."
                              example: null
                              nullable: true
                              type: string
                            friendly_name:
                              description: The key's friendly name.
                              example: TestKey
                              type: string
                            id:
                              description: The key's ID.
                              example: bbe7e_16e2d_df7539f280eb1ecf6c1096190e41ada7
                              type: string
                            key_algorithm:
                              description: |-
                                The key’s algorithm.

                                * `rsaEncryption` — RSA.
                                * `id-ecPublicKey` — ECDSA.
                              enum:
                                - rsaEncryption
                                - id-ecPublicKey
                              example: rsaEncryption
                              type: string
                            modulus:
                              description: "The key's modulus, in hexadecimal format.\n\n* `null` —\_The key is **not** an RSA key."
                              example: >-
                                a673c3b17344664b35f8791f562d3aea6bf4d8faa3ae3fc0a519380fd453964a36677c34d48677ecb7f5ed035df026f5f0f8fbfe21745e52daf1f3b9e58c73f0baefdb709320e2202e7d05250b051a59b30ff1fef22d83d7140c1c81cea314a0890ce8d2226799872181c58a74016c7aaa2cff5ac72b575cecde8f304aa572a2ea03d8b173ab76c6e8cdb9dfd0da81e1119cefd4b8b4dbfbe0e46c7f1ee2fe8b5fd5504e58ccbc0d13b4fa41ecc9ebd0dabe1d1fec5c724f748167e7c0553e997f9b77eb36abce70973f06df151748d41b758de3efd7afa6f2464a1547f5ff158469d96e248be464df9eda0e7ce854a89332a2c1278b17c425368a9604f454db
                              nullable: true
                              type: string
                            modulus_length:
                              description: "The length, in bits, of the key's modulus.\n\n* `null` —\_The key is **not** an RSA key."
                              example: 2048
                              minimum: 1
                              nullable: true
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Import private key
      tags:
        - SSL
        - SSL Certificate Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --input=json --output=jsonpretty \
              --user=username \
              SSL \
              upload_key
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: |+
            POST /cpsess##########/execute/SSL/upload_key HTTP/1.1
            Host: example.com:2083
            Cookie: ###################################
            Content-Type: application/json
            Content-Length: 0

      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /ServerInformation/get_information:
    get:
      description: >-
        This function returns the status of each

        [cPanel service
        (daemon)](https://go.cpanel.net/ThecPanelWHMServiceDaemons),

        device, and server health check point on your server.
      operationId: get_information
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_information
                    type: string
                  module:
                    description: The name of the module called.
                    example: ServerInformation
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects containing the server's status.
                        example:
                          - name: apache_php_fpm
                            status: 1
                            type: service
                            value: up
                          - name: cpanel-dovecot-solr
                            status: 1
                            type: service
                            value: up
                          - name: cpanellogd
                            status: 1
                            type: service
                            value: up
                          - name: cpdavd
                            status: 1
                            type: service
                            value: up
                          - name: cphulkd
                            status: 1
                            type: service
                            value: up
                          - name: cpsrvd
                            status: 1
                            type: service
                            value: up
                          - name: crond
                            status: 1
                            type: service
                            value: up
                          - name: dnsadmin
                            status: 1
                            type: service
                            value: up
                          - name: exim
                            status: 1
                            type: service
                            value: up
                            version: exim-4.92-1.cp1180.x86_64
                          - name: ftpd
                            status: 1
                            type: service
                            value: up
                          - name: httpd
                            status: 1
                            type: service
                            value: up
                            version: 2.4.39
                          - name: imap
                            status: 1
                            type: service
                            value: up
                          - name: ipaliases
                            status: 1
                            type: service
                            value: up
                          - name: lmtp
                            status: 1
                            type: service
                            value: up
                          - name: mailman
                            status: 1
                            type: service
                            value: up
                          - name: mysql
                            status: 1
                            type: service
                            value: up
                            version: 5.7.25
                          - name: named
                            status: 1
                            type: service
                            value: up
                          - name: nscd
                            status: 1
                            type: service
                            value: up
                          - name: pop
                            status: 1
                            type: service
                            value: up
                          - name: queueprocd
                            status: 1
                            type: service
                            value: up
                          - name: rsyslogd
                            status: 1
                            type: service
                            value: up
                          - name: spamd
                            status: 1
                            type: service
                            value: up
                          - name: sshd
                            status: 1
                            type: service
                            value: up
                          - name: Server Load
                            status: 1
                            type: metric
                            value: '1.73'
                          - name: CPU Count
                            status: 1
                            type: metric
                            value: '2'
                          - name: Memory Used
                            status: 1
                            type: device
                            value: 44.12%
                          - name: Swap
                            status: 1
                            type: device
                            value: 0.73%
                          - name: Disk / (/)
                            status: 1
                            type: device
                            value: 26%
                          - name: Disk /tmp (/tmp)
                            status: 1
                            type: device
                            value: 0%
                          - name: Disk /var/tmp (/var/tmp)
                            status: 1
                            type: device
                            value: 0%
                        items:
                          properties:
                            error:
                              description: >-
                                An error message about why system couldn't read
                                a resource's status file.
                              example: nscd is reporting errors.
                              type: string
                            name:
                              description: "The cPanel services, devices, and server health check points on the\nserver.\n\n* A valid [cPanel service](https://go.cpanel.net/ThecPanelWHMServiceDaemons). \n* `CPU Count` —\_The number of CPUs on the server.\n* `Disk mount (mount)` —\_The server's disk mounts, where `mount`\nrepresents the disk mount location.\n* `Server Load` —\_The server's CPU load.\n* `Memory Used` —\_The server's current memory use.\n* `Swap`\_—\_The server's swap space."
                              example: cpsrvd
                              type: string
                            status:
                              description: >-
                                Whether the resource is enabled or disabled.


                                * `1` — Enabled.

                                * `0` — Disabled.

                                * `unknown` — The system couldn't determine the
                                resource's status.
                              example: 1
                              oneOf:
                                - description: Whether the resource is enabled or disabled.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                                - description: >-
                                    The system couldn't determine the resource's
                                    status.
                                  enum:
                                    - unknown
                                  type: string
                            type:
                              description: |-
                                The type of resource.

                                * `device`
                                * `metric`
                                * `service`
                              enum:
                                - device
                                - metric
                                - service
                              example: service
                              type: string
                            value:
                              anyOf:
                                - description: The resource's status.
                                  enum:
                                    - up
                                    - down
                                    - unknown
                                  type: string
                                - description: The resource's current usage.
                                  type: string
                              description: |-
                                The resource's status.

                                * `up`
                                * `down`
                                * `unknown`
                                * The current resource usage.
                            version:
                              description: >-
                                The resource's software version.


                                **Important:**


                                The function **only** returns this value if a
                                valid software

                                version exists.
                              example: exim-4.92-1.cp1178.x86_64
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return service and device status
      tags:
        - ServerInformation
        - cPanel Server Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ServerInformation \
              get_information
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ServerInformation/get_information
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ServerInformation_get_information.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/ServerInformation_get_information.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ServerInformation/,
                q/get_information/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ServerInformation_get_information.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/ServerInformation_get_information.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ServerInformation',
                'get_information'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 82
  /ServiceProxy/get_service_proxy_backends:
    get:
      description: |-
        This function reports a cPanel account's
        [service proxying](https://go.cpanel.net/ServiceProxying)
        configuration.
      operationId: serviceproxy-get_service_proxy_backends
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_service_proxy_backends
                    type: string
                  module:
                    description: The name of the module called.
                    example: ServiceProxy
                    type: string
                  result:
                    properties:
                      data:
                        description: The account’s service proxying backends.
                        items:
                          properties:
                            backend:
                              description: >-
                                The name of the server to which the system will
                                proxy requests for this service group.
                              example: example.com
                              format: domain
                              type: string
                            service_group:
                              description: >-
                                The name of the proxying service group, if
                                applicable.


                                * null — The account’s general service proxying
                                backend.
                              example: Mail
                              nullable: true
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Return a cPanel account’s service proxying setup
      tags:
        - ServiceProxy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ServiceProxy \
              get_service_proxy_backends
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ServiceProxy/get_service_proxy_backends
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ServiceProxy_get_service_proxy_backends.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/ServiceProxy_get_service_proxy_backends.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ServiceProxy/,
                q/get_service_proxy_backends/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ServiceProxy_get_service_proxy_backends.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/ServiceProxy_get_service_proxy_backends.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ServiceProxy',
                'get_service_proxy_backends'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 96
  /ServiceProxy/set_service_proxy_backends:
    get:
      description: >-
        This function lets you configure a cPanel account's

        [service proxying](https://go.cpanel.net/ServiceProxying).


        **Note:**


        * If the [Web
        Server](https://go.cpanel.net/howtouseserverprofiles#roles) role is
        active

        on the server, this function rebuilds the user's web virtual hosts
        (vhosts) and restarts

        the web server.

        * If the system cannot rebuild the user's vhosts, the API call will
        still succeed. However,

        the function returns a failure warning in the metadata.

        * To remove an account's service proxying, use the UAPI
        `unset_all_service_proxy_backends`

        function.
      operationId: serviceproxy-set_service_proxy_backends
      parameters:
        - description: |-
            The hostname or IP address to assign as the server that handles
            the account's service proxy requests.

            This parameter defaults to the existing service proxy configuration,
            if one exists.
          in: query
          name: general
          required: false
          schema:
            anyOf:
              - description: A valid hostname.
                example: hostname.example.com
                format: hostname
                type: string
              - description: A valid IP address.
                example: 192.0.2.102
                format: ipv4
                type: string
        - description: >-
            The name of a service group for which to assign a proxy backend. The

            corresponding `service_group_backend` value will be the service
            group's

            new proxy backend.


            * `Mail` — The [Mail service
            group](https://go.cpanel.net/ServiceProxying#Mail).


            This parameter defaults to the existing setting, if one exists.


            **Note:**

             * When you call this parameter, you **must** include a corresponding
             `service_group_backend` value.
             * To add multiple `service_group` values, increment the parameter name. For example,
             `service_group`, `service_group-1`, and `service_group-2`.
          examples:
            multiple:
              summary: Add multiple service backend groups.
              value: Mail&service-group-1=Mail&service-group-2=Mail
            single:
              summary: Add a single service backend group.
              value: Mail
          in: query
          name: service_group
          required: false
          schema:
            enum:
              - Mail
            type: string
        - description: >-
            The hostname or IP address of the server to assign as the
            corresponding

            `service_group` value's proxy backend server.


            This parameter defaults to the existing setting, if one exists.


            **Note:**

             * When you call this parameter, you **must** include a corresponding `service_group`
             value.
             * To add multiple `service_group_backend` values, increment the parameter name.
             For example, `service_group_backend`, `service_group_backend-1`,
             and `service_group_backend-2`.
          examples:
            multiple:
              summary: Add multiple service group backend servers.
              value: >-
                mail.example.com&service_group_backend-1=mail.example1.com&service_group_backend-2=mail.example2.com
            single:
              summary: Add a single service group backend server.
              value: mail.example.com
          in: query
          name: service_group_backend
          required: false
          schema:
            anyOf:
              - description: A valid hostname.
                example: hostname.example.com
                format: hostname
                type: string
              - description: A valid IP address.
                example: 192.0.2.102
                format: ipv4
                type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_service_proxy_backends
                    type: string
                  module:
                    description: The name of the module called.
                    example: ServiceProxy
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add cPanel account service proxying
      tags:
        - ServiceProxy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ServiceProxy \
              set_service_proxy_backends
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ServiceProxy/set_service_proxy_backends
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file ServiceProxy_set_service_proxy_backends.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/ServiceProxy_set_service_proxy_backends.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ServiceProxy/,
                q/set_service_proxy_backends/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file ServiceProxy_set_service_proxy_backends.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/ServiceProxy_set_service_proxy_backends.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ServiceProxy',
                'set_service_proxy_backends'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 96
  /ServiceProxy/unset_all_service_proxy_backends:
    get:
      description: >-
        This function removes a cPanel account's

        [service proxying](https://go.cpanel.net/ServiceProxying).


        **Note:**


        * If the [Web
        Server](https://go.cpanel.net/howtouseserverprofiles#roles) role is
        active on

        the server, this function rebuilds the cPanel user's web virtual hosts
        (vhosts) and restarts

        the web server.

        * If the system **cannot** rebuild the cPanel user's vhosts, the API
        call will still succeed.

        However, the function returns a failure warning in the metadata.

        * To set a service proxying for a cPanel account, use the UAPI

        `set_service_proxy_backends` function.
      operationId: serviceproxy-unset_all_service_proxy_backends
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unset_all_service_proxy_backends
                    type: string
                  module:
                    description: The name of the module called.
                    example: ServiceProxy
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove cPanel account service proxying
      tags:
        - ServiceProxy
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              ServiceProxy \
              unset_all_service_proxy_backends
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/ServiceProxy/unset_all_service_proxy_backends
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            ServiceProxy_unset_all_service_proxy_backends.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/ServiceProxy_unset_all_service_proxy_backends.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/ServiceProxy/,
                q/unset_all_service_proxy_backends/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            ServiceProxy_unset_all_service_proxy_backends.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/ServiceProxy_unset_all_service_proxy_backends.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'ServiceProxy',
                'unset_all_service_proxy_backends'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 96
  /Session/create_temp_user:
    get:
      description: >-
        This function creates a temporary user session.


        **Important:**


        * Because this function requires a valid cPanel session ID, you **must**
        call it via a cPanel or Webmail session URL. If you call this function
        via the command line or Template Toolkit, it will **not** create a
        temporary user session. You **must** use the WHM API 1
        `create_user_session` function to create a temporary user session.

        * Third-party plugins that require access to temporary MySQL users
        **must** call this function via the URL. It will create the temporary
        users before they are available. You can find these users in the
        `$ENV{'REMOTE_DBOWNER'}` environment variable.

        * If you **cannot** update your system, update your scripts to call the
        `Cgi::phpmyadminlink` function. This will create a temporary user
        session for you.
      operationId: create_temp_user
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_temp_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Session
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          created:
                            description: >-
                              Whether the function successfully created the
                              temporary user session.

                              * `1` - Success.

                              * `0` - Failure.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          session_temp_user:
                            description: The temporary user's session ID.
                            example: cpses_reviY3ZSQK
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create user session with existing session
      tags:
        - Session
        - Webmail Sessions
      x-codeSamples:
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Session/create_temp_user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Session_create_temp_user.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Session_create_temp_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Session/,
                q/create_temp_user/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Session_create_temp_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Session_create_temp_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Session',
                'create_temp_user'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54.0.16
      x-cpanel-cli-support: false
  /Session/create_webmail_session_for_mail_user:
    get:
      description: >-
        Create a temporary session for a cPanel user to connect to Webmail.


        **Note:**


        The cPanel user must own the Webmail account.


        ### How to use this API


        After you successfully call this API, you will need to log in to
        [Webmail](https://go.cpanel.net/webmailinterface).

        To do this, send an HTTP POST to `https://$URL_AUTHTY:2096$token/login`
        with a message body of `session=$session` where:


        * `$URL_AUTHTY` represents the value from the `hostname` return.
          * If the `hostname` return value is `null`, enter the hostname of the server that answered the API function.
          * `$token` represents the value from the token return.
        * `$session` represents the value of the session return.


        For example, an HTTP POST may resemble the following:


        ```https://hostname.example.com:2096/cpsess2462418786/login```


        With a message body of:


        ```session=username:D7NiAZv1nf4bXeg9:CREATE_WEBMAIL_SESSION_FOR_MAIL_USER,728fb86a7df1cf20690c65f349ac3137```
      operationId: create_webmail_session_for_mail_user
      parameters:
        - description: The domain for the Webmail account.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
        - description: The Webmail account's username.
          in: query
          name: login
          required: true
          schema:
            example: username
            type: string
        - description: "The\_[locale](https://go.cpanel.net/localedocs)\_that the new session will use.\n\n**Note:**\n\n* You must **only** enter lowercase characters.\n* This parameter defaults to the cPanel user's locale."
          in: query
          name: locale
          required: false
          schema:
            example: en
            type: string
        - description: >-
            The session's client IP address.


            **Note:**


            * If you run this function from the command line, this parameter is
            **required**.

            * This parameter defaults to the API caller's IP address.
          in: query
          name: remote_address
          required: false
          schema:
            example: 192.168.0.1
            format: ipv4
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_webmail_session_for_mail_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Session
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          hostname:
                            description: >-
                              The Webmail server's hostname.


                              **Note:**


                              The function returns a `null` value when the
                              Webmail server is not remote.
                            example: hostname.example.com
                            nullable: true
                            type: string
                          session:
                            description: >-
                              The session ID to submit via POST to begin using
                              the new session.
                            example: >-
                              username:D7NiAZv1nf4bXeg9:CREATE_WEBMAIL_SESSION_FOR_MAIL_USER,728fb86a7df1cf20690c65f349ac3137
                            type: string
                          token:
                            description: A new security token.
                            example: /cpsess2462418786
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Webmail session
      tags:
        - Session
        - Webmail Sessions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Session \
              create_webmail_session_for_mail_user \
              login='username' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Session/create_webmail_session_for_mail_user?login=username&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            Session_create_webmail_session_for_mail_user.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Session_create_webmail_session_for_mail_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Session/,
                q/create_webmail_session_for_mail_user/,
                {
                    'login' => 'username',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            Session_create_webmail_session_for_mail_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Session_create_webmail_session_for_mail_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Session',
                'create_webmail_session_for_mail_user',
                array (
                    'login' => 'username',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /Session/create_webmail_session_for_mail_user_check_password:
    get:
      description: >-
        This function creates a temporary session with a password for the
        calling cPanel user to connect to Webmail.


        **Note:**


        * The cPanel user must own the Webmail account.

        * This function works like the UAPI
        Session::create_webmail_session_for_mail_user function with one
        exception. This function requires a correct password to create the
        Webmail session. If you use an incorrect password or attempt to connect
        to a suspended account, the login will fail.


        ### How to use this API


        After you successfully call this API, you will need to log in to
        [Webmail](https://go.cpanel.net/webmailinterface).

        To do this, send an HTTP POST to `https://$URL_AUTHTY:2096$token/login`
        with a message body of `session=$session` where:


        * `$URL_AUTHTY` represents the value from the `hostname` return.
          * If the `hostname` return value is `null`, enter the hostname of the server that answered the API function.
          * `$token` represents the value from the token return.
        * `$session` represents the value of the session return.


        For example, an HTTP POST may resemble the following:


        ```https://hostname.example.com:2096/cpsess2462418786/login```


        With a message body of:


        ```session=username:D7NiAZv1nf4bXeg9:CREATE_WEBMAIL_SESSION_FOR_MAIL_USER,728fb86a7df1cf20690c65f349ac3137```
      operationId: create_webmail_session_for_mail_user_check_password
      parameters:
        - description: "The domain for the\_Webmail account."
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
        - description: The Webmail account's username.
          in: query
          name: login
          required: true
          schema:
            example: username
            type: string
        - description: The password for the Webmail account.
          in: query
          name: password
          required: true
          schema:
            example: luggage12345
            type: string
        - description: "The\_[locale](https://go.cpanel.net/localedocs)\_that the new session will use.\n\n**Note:**\n\n* You must **only** enter lowercase characters.\n* This parameter defaults to the cPanel user's locale."
          in: query
          name: locale
          required: false
          schema:
            example: en
            type: string
        - description: >-
            The session's account's client IP address.


            **Note:**


            * If you run this function from the command line, this parameter is
            **required**.

            * This parameter defaults to the API caller's IP address.
          in: query
          name: remote_address
          required: false
          schema:
            example: 192.168.0.1
            format: ipv4
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_webmail_session_for_mail_user_check_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Session
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          hostname:
                            description: >-
                              The Webmail server's hostname.


                              **Note:**


                              The function returns a `null` value when the
                              Webmail server is not remote.
                            example: hostname.example.com
                            nullable: true
                            type: string
                          session:
                            description: >-
                              The session value to submit via POST to begin
                              using the new session.
                            example: >-
                              username:D7NiAZv1nf4bXeg9:CREATE_WEBMAIL_SESSION_FOR_MAIL_USER,728fb86a7df1cf20690c65f349ac3137
                            type: string
                          token:
                            description: A new security token.
                            example: /cpsess2462418786
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Webmail session with credentials
      tags:
        - Session
        - Webmail Sessions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Session \
              create_webmail_session_for_mail_user_check_password \
              login='username' \
              domain='example.com' \
              password='luggage12345'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Session/create_webmail_session_for_mail_user_check_password?login=username&domain=example.com&password=luggage12345
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            Session_create_webmail_session_for_mail_user_check_password.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Session_create_webmail_session_for_mail_user_check_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Session/,
                q/create_webmail_session_for_mail_user_check_password/,
                {
                    'login' => 'username',
                    'domain' => 'example.com',
                    'password' => 'luggage12345',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            Session_create_webmail_session_for_mail_user_check_password.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Session_create_webmail_session_for_mail_user_check_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Session',
                'create_webmail_session_for_mail_user_check_password',
                array (
                    'login' => 'username',
                    'domain' => 'example.com',
                    'password' => 'luggage12345',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /Session/create_webmail_session_for_self:
    get:
      description: "Create a temporary session to connect to Webmail\_for the authenticated cPanel user.\n\n### How to use this API\n\nAfter you successfully call this API, you will need to log in to [Webmail](https://go.cpanel.net/webmailinterface).\nTo do this, send an HTTP POST to `https://$URL_AUTHTY:2096$token/login` with a message body of `session=$session` where:\n\n* `$URL_AUTHTY` represents the value from the `hostname` return.\n  * If the `hostname` return value is `null`, enter the hostname of the server that answered the API function.\n  * `$token` represents the value from the token return.\n* `$session` represents the value of the session return.\n\nFor example, an HTTP POST may resemble the following:\n\n```https://hostname.example.com:2096/cpsess2462418786/login```\n\nWith a message body of:\n\n```session=username:D7NiAZv1nf4bXeg9:CREATE_WEBMAIL_SESSION_FOR_MAIL_USER,728fb86a7df1cf20690c65f349ac3137```"
      operationId: create_webmail_session_for_self
      parameters:
        - description: "The\_[locale](https://go.cpanel.net/localedocs)\_that the new session will use.\n\nUse UAPI `Locale::list_locales` to see a list of valid locales.\n\n**Note:**\n\n* You must **only** enter lowercase characters.\n* This parameter defaults to the cPanel user's locale."
          in: query
          name: locale
          required: false
          schema:
            example: en
            type: string
        - description: >-
            The session's client IP address.


            **Note:**


            * If you run this function from the command line, this parameter is
            **required**.

            * This parameter defaults to the API caller's IP address.
          in: query
          name: remote_address
          required: false
          schema:
            example: 192.168.0.1
            format: ipv4
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_webmail_session_for_self
                    type: string
                  module:
                    description: The name of the module called.
                    example: Session
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          hostname:
                            description: >-
                              The Webmail server's hostname.


                              **Note:**


                              The function returns a `null` value when the
                              Webmail server is **not** remote.
                            example: hostname.example.com
                            format: domain
                            nullable: true
                            type: string
                          session:
                            description: >-
                              The session value to submit via POST to begin
                              using the new session.
                            example: >-
                              username:D7NiAZv1nf4bXeg9:CREATE_WEBMAIL_SESSION_FOR_SELF,728fb86a7df1cf20690c65f349ac3137
                            type: string
                          token:
                            description: A new security token.
                            example: /cpsess2462418786
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Webmail session for current user
      tags:
        - Session
        - Webmail Sessions
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Session \
              create_webmail_session_for_self
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Session/create_webmail_session_for_self
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Session_create_webmail_session_for_self.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Session_create_webmail_session_for_self.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Session/,
                q/create_webmail_session_for_self/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Session_create_webmail_session_for_self.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Session_create_webmail_session_for_self.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Session',
                'create_webmail_session_for_self'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /SiteQuality/create_project:
    post:
      description: >-
        This function creates a Site Quality Monitoring project. A project
        bundles together one or more URLs with a shared domain for monitoring.
      operationId: SiteQuality-create_project
      parameters:
        - description: The name of the project to create.
          in: query
          name: name
          required: true
          schema:
            example: MyProject
            type: string
        - description: The URL to monitor.
          in: query
          name: url
          required: true
          schema:
            example: https://example.com
            type: string
        - description: |-
            Whether to enable standard email alerts.
              * `1` - Enable standard alerting.
              * `0` - Do not enable standard alerting.
              * `null` - Do not enable standard alerting.
          in: query
          name: standard_alerting
          required: false
          schema:
            example: 0
            default: null
            nullable: true
            type: integer
            enum:
              - 0
              - 1
              - null
        - description: The monitoring template to use for the project.
          in: query
          name: system_type
          required: false
          schema:
            example: Website
            default: Website
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_project
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: An object that contains project attributes.
                        properties:
                          id:
                            description: The project ID number.
                            example: 1754
                            type: integer
                          identifier:
                            description: The project identifier.
                            example: pro-1754
                            type: string
                          location:
                            description: The region where monitoring checks originate.
                            example: us
                            type: string
                          name:
                            description: The project's name.
                            example: MyProject
                            type: string
                          role:
                            description: Information about the user that owns the project.
                            type: object
                            properties:
                              id:
                                description: The user's role ID number.
                                example: 0
                                type: integer
                              name:
                                description: The user's role title.
                                example: Owner
                                type: string
                          systems:
                            description: >-
                              Information about the system that the project
                              monitors.
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  description: The name of the system.
                                  example: MyProject
                                  type: string
                                description:
                                  description: A description of the system.
                                  nullable: true
                                  default: null
                                  example: null
                                  type: string
                                domain:
                                  description: The system's base domain.
                                  example: https://example.com
                                  type: string
                                id:
                                  description: The system's ID number.
                                  example: 2542
                                  type: integer
                                interval:
                                  description: The time interval for monitoring checks.
                                  example: hour
                                  type: string
                                limits:
                                  description: >-
                                    Restrictions placed on the monitoring
                                    checks.
                                  type: object
                                  properties:
                                    maximumCrawlDepth:
                                      description: >-
                                        The maximum number of URLs to check for
                                        dead links on a page.
                                      example: 500
                                      default: 500
                                      type: integer
                                system_type:
                                  description: The monitoring template used for the system.
                                  type: object
                                  properties:
                                    name:
                                      description: The name of the system type.
                                      example: Website
                                      default: Website
                                      type: string
                                    id:
                                      description: The system's type ID number.
                                      example: 1
                                      default: 1
                                    fixedComponents:
                                      description: >-
                                        Whether the system components are
                                        immutable.
                                          * `true` - The components are immutable.
                                          * `false` - The components are not immutable..
                                      example: true
                                      default: true
                                      type: boolean
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add domain to monitoring
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              create_project \
              name=MyProject \
              url='https://example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/create_project?name=MyProject&url=https://example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_create_project.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_create_project.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/create_project/,
                {
                    'name' => 'MyProject',
                    'url' => 'https://example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_create_project.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_create_project.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'create_project',
                array (
                    'name' => 'MyProject',
                    'url' => 'https://example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/create_site_quality_user:
    post:
      description: >-
        This function creates a Site Quality Monitoring user account associated
        with a cPanel user account.
      operationId: SiteQuality-create_site_quality_user
      parameters:
        - description: The cPanel account's email address.
          in: query
          name: email
          required: true
          schema:
            example: username@example.com
            type: string
        - description: |-
            The account's password.

            **Note:**

            If no password is given, one is auto-generated.

            The system does not save this value.
          in: query
          name: password
          required: false
          schema:
            example: An3xample!?
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_site_quality_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: An object that contains user attributes.
                        properties:
                          app_token:
                            description: >-
                              The long-lived token for this account. The <a
                              href="https://go.cpanel.net/5k"
                              target="_blank">koality</a> servers require this
                              token to authenticate. If this token is lost, the
                              user must create a new account.
                            example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
                            type: string
                          username:
                            description: >-
                              The account's username. This value reflects the
                              `email` parameter.
                            example: username@example.com
                            type: string
                          enabled:
                            description: >-
                              Whether the account is enabled to process user
                              data.
                               * `false` - The account is disabled.
                               * `true` - The account is enabled.
                            example: true
                            type: boolean
                            nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings that the API generated. Warnings
                          describe non-critical failures or issues the system
                          noted while running an API function.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Register cPanel user for monitoring
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              create_site_quality_user \
              email=username@example.com
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/create_site_quality_user?email=username@example.com
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: >
            POST /cpsess##########/execute/SiteQuality/create_site_quality_user
            HTTP/1.1

            Host: example.com:2083

            Cookie: ###################################

            Content-Type: application/json

            Content-Length: 0
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_create_site_quality_user.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_create_site_quality_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/create_site_quality_user/,
                {
                    'email' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_create_site_quality_user.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_create_site_quality_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'create_site_quality_user',
                array (
                    'email' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/delete_site_quality_user:
    get:
      description: >-
        This function initiates the deletion of the Site Quality Monitoring user
        account associated with a cPanel user account.
      operationId: SiteQuality-delete_site_quality_user
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_site_quality_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains whether the user has been
                          deleted.
                        properties:
                          deleted:
                            description: >-
                              Whether or not the account has been successfully
                              deleted.

                              * `1` - Success

                              * `0` - Failed
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete Site Quality Monitoring account
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              delete_site_quality_user
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/delete_site_quality_user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_delete_site_quality_user.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_delete_site_quality_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/delete_site_quality_user/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_delete_site_quality_user.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_delete_site_quality_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'delete_site_quality_user'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/get_all_scores:
    post:
      description: >-
        This function returns information about the cPanel user's Site Quality
        Monitoring projects' most recent monitoring check results.
      operationId: SiteQuality-get_all_scores
      parameters:
        - description: >-
            Whether to enable verbose output.


            ** Note: **


            This includes information about the user's Site Quality Monitoring
            project's most recent results in each monitoring check subcategory.
          in: query
          name: verbose
          required: true
          schema:
            example: 1
            default: null
            nullable: true
            type: integer
            enum:
              - 0
              - 1
              - null
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_all_scores
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: An object that contains score details.
                        type: object
                        properties:
                          scores:
                            description: >-
                              An array of objects containing score data and the
                              associated system information.
                            type: array
                            items:
                              type: object
                              properties:
                                system:
                                  type: object
                                  properties:
                                    name:
                                      description: The name of the project.
                                      type: string
                                      example: MyProject
                                    id:
                                      description: The project's ID number.
                                      example: 2542
                                      type: integer
                                scores:
                                  type: object
                                  properties:
                                    basic-uptime:
                                      $ref: '#/components/schemas/Score'
                                    basic-performance:
                                      $ref: '#/components/schemas/Score'
                                    basic-seo:
                                      $ref: '#/components/schemas/Score'
                                    basic-content:
                                      $ref: '#/components/schemas/Score'
                                    basic-tech:
                                      $ref: '#/components/schemas/Score'
                                    basic-security:
                                      $ref: '#/components/schemas/Score'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Return all projects' monitoring results
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              get_all_scores \
              verbose=1
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/get_all_scores?verbose=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_get_all_scores.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_get_all_scores.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/get_all_scores/,
                {
                    'verbose' => 1,
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_get_all_scores.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_get_all_scores.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'get_all_scores',
                array (
                    'verbose' => 1,
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/get_app_token:
    get:
      description: >-
        This function returns the long-lived application token used to
        authenticate with <a href="https://go.cpanel.net/5k"
        target="_blank">koality's</a> authentication servers.
      operationId: SiteQuality-get_app_token
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_app_token
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains user authentication
                          attributes.
                        properties:
                          app_token:
                            description: >-
                              The long-lived token for this account. The <a
                              href="https://go.cpanel.net/5k"
                              target="_blank">koality</a> servers require this
                              token to authenticate. If this token is lost, the
                              user must create a new account.
                            example: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings that the API generated. Warnings
                          describe non-critical failures or issues the system
                          noted while running an API function.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Return koality authentication token
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              get_app_token
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/get_app_token
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_get_app_token.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_get_app_token.live.pl

            #--------------------------------------------------------------------------------------

            #


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/get_app_token/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_get_app_token.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_get_app_token.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'get_app_token'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/has_site_quality_user:
    get:
      description: >-
        This function returns whether the cPanel user has an associated Site
        Quality Monitoring account.
      operationId: SiteQuality-has_site_quality_user
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_site_quality_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains Site Quality Monitoring user
                          attributes.
                        properties:
                          has_site_quality_user:
                            description: >-
                              Whether the cPanel user has an associated Site
                              Quality Monitoring account.

                              * `1` - The user does have an associated account.

                              * `0` - The user does not have an associated
                              account.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings that the API generated. Warnings
                          describe non-critical failures or issues the system
                          noted while running an API function.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Validate monitoring account existence
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              has_site_quality_user
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/has_site_quality_user
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_has_site_quality_user.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_has_site_quality_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/has_site_quality_user/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_has_site_quality_user.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_has_site_quality_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'has_site_quality_user'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/is_site_quality_user_enabled:
    get:
      description: >-
        This function verifies that <a href="https://go.cpanel.net/5k"
        target="_blank">koality</a> has enabled the cPanel user's Site Quality
        Monitoring account.
      operationId: SiteQuality-is_site_quality_user_enabled
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_site_quality_user_enabled
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: An object that contains user attributes.
                        properties:
                          enabled:
                            description: |-
                              Whether or not the account has been enabled.
                              * `1` - Enabled
                              * `0` - Disabled
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Validate monitoring account enablement
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              is_site_quality_user_enabled
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/is_site_quality_user_enabled
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_is_site_quality_user_enabled.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_is_site_quality_user_enabled.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/is_site_quality_user_enabled/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            SiteQuality_is_site_quality_user_enabled.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_is_site_quality_user_enabled.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'is_site_quality_user_enabled'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/reset_config:
    get:
      description: >-
        This function will remove Site Quality Monitoring account data from the
        cPanel user's configuration.


        **Note:**

        * This function will prevent cPanel & WHM from automatically logging the
        user into their Site Quality Monitoring account.

        * This function does not delete the Site Quality Monitoring account from
        the <a href="https://go.cpanel.net/5k" target="_blank">koality</a>
        servers.
      operationId: SiteQuality-reset_config
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: reset_config
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains the status of the account data
                          removal from the cPanel user's configuration.
                        properties:
                          reset:
                            description: |-
                              Whether the account data was removed.
                              * `1` - The account data was removed.
                              * `0` - The account data was not removed.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings that the API generated. Warnings
                          describe non-critical failures or issues the system
                          noted while running an API function.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove monitoring user from cPanel configuration
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              reset_config
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/reset_config
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_reset_config.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_reset_config.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/reset_config/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_reset_config.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_reset_config.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'reset_config'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/send_activation_email:
    get:
      description: >-
        This function sends a Site Quality Monitoring activation email to the
        currently-authenticated Site Quality Monitoring user.


        **Note:**

        This email contains the Site Quality Monitoring activation code.
      operationId: SiteQuality-send_activation_email
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: send_activation_email
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains the activation email request
                          status.
                        properties:
                          send_activation_email:
                            description: >-
                              Whether the request to send an activation email
                              was successful.

                              * `1` - The request was successful. An activation
                              email will send.

                              * `0` - The request was not successful. An
                              activation email will not send.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings that the API generated. Warnings
                          describe non-critical failures or issues the system
                          noted while running an API function.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Request activation email
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              reset_config
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/send_activation_email
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_send_activation_email.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_send_activation_email.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/send_activation_email/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_send_activation_email.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_send_activation_email.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'send_activation_email'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/update_domain:
    post:
      description: >-
        This function updates the domain name for a Site Quality Monitoring
        project. It searches through all projects owned by the user to find
        systems that match the specified old domain and updates them to use the
        new domain. This is typically used when a website's domain name changes
        and the monitoring configuration needs to be updated accordingly.
      operationId: SiteQuality-update_domain
      parameters:
        - description: >-
            The new domain name to replace the old domain in the Site Quality
            Monitoring project.
          in: query
          name: new_domain
          required: true
          schema:
            example: newdomain.com
            type: string
        - description: >-
            The current domain name that needs to be updated in the Site Quality
            Monitoring project.
          in: query
          name: old_domain
          required: true
          schema:
            example: olddomain.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update_domain
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains the updated system information
                          from the Site Quality Monitoring API.
                        properties:
                          system:
                            description: Information about the updated monitoring system.
                            properties:
                              id:
                                description: The system's ID number.
                                example: 623358
                                type: integer
                              name:
                                description: >-
                                  The updated system name (typically the new
                                  domain).
                                example: newdomain.com
                                type: string
                              system_size:
                                description: >-
                                  Information about the system's subscription
                                  plan.
                                properties:
                                  id:
                                    description: The system size ID number.
                                    example: 3
                                    type: integer
                                  name:
                                    description: >-
                                      The name of the system size/subscription
                                      plan.
                                    example: Unlimited lite
                                    type: string
                                type: object
                              url:
                                description: The updated system URL with the new domain.
                                example: https://newdomain.com
                                type: string
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update domain name in Site Quality Monitoring project
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              update_domain \
              old_domain=olddomain.com \
              new_domain=newdomain.com
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/update_domain?old_domain=olddomain.com&new_domain=newdomain.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_update_domain.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_update_domain.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/update_domain/,
                {
                    'old_domain' => 'olddomain.com',
                    'new_domain' => 'newdomain.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_update_domain.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_update_domain.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'update_domain',
                array (
                    'old_domain' => 'olddomain.com',
                    'new_domain' => 'newdomain.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteQuality/verify_code:
    get:
      description: >-
        This function validates the activation code in a cPanel user's Site
        Quality Monitoring registration email.
      operationId: SiteQuality-verify_code
      parameters:
        - description: >-
            The user's Site Quality Monitoring activation code.


            **Note:**


            A user will receive an email with their activation code when they
            create a Site Quality Monitoring user account.
          in: query
          name: code
          required: true
          schema:
            example: '123456'
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: verify_code
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteQuality
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains information about the user's
                          activation code validation.
                        properties:
                          status:
                            description: |-
                              Whether the user's activation code is valid.
                              * `1` - Valid.
                              * `0` - Invalid.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors that the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages the API generated.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Validate activation code
      tags:
        - SiteQuality
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteQuality \
              verify_code
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteQuality/verify_code
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteQuality_verify_code.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>

            #    to
            .../frontend/<theme-name>/api_examples/SiteQuality_verify_code.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteQuality/,
                q/verify_code/,
                {
                    'code' => '123456',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteQuality_verify_code.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>

            //    to
            .../frontend/<theme-name>/api_examples/SiteQuality_verify_code.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteQuality',
                'verify_code',
                {
                    'code' => '123456',
                }
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
      x-cpanel-plugin: SiteQuality
  /SiteTemplates/list_site_templates:
    get:
      description: "This function lists available templates for cPanel's [Site Publisher](https://go.cpanel.net/cpaneldocsSitePublisher) feature.\n\n* If you call this function as the `root` or `system` user, the function lists the `root` user's templates.\n* If you call this function as a reseller, the function lists the `root` user's templates **and** the reseller's templates.\n* If you call this function as a cPanel user, the function's output depends on the account's owner:\n  * If the `root` user owns the account, the function only lists the `root` user's templates.\n  * If a reseller owns the account, the function lists the `root` user's templates **and** that reseller's templates.\n\n**Note:**\n\n  The template directory's location depends on whether the `root` user or a reseller owns the template:\n  * `/var/cpanel/customizations/site_templates/` —\_The `root` user's templates.\n  * `/home/username/var/cpanel/reseller/site_templates/` — A reseller's templates, where `username` represents the reseller's username.\n  * `/usr/local/cpanel/3rdparty/share/site_templates/` — cPanel-provided templates.\n\n**Important:**\n\n  When you disable the [Web Server role](https://go.cpanel.net/serverroles), the system **disables** this function."
      operationId: list_site_templates
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_site_templates
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteTemplates
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            meta:
                              description: >-
                                A set of data that gives information on the
                                template.
                              properties:
                                fields:
                                  description: >-
                                    This array of objects shows the information
                                    for each field the user can add input in the
                                    template.
                                  items:
                                    properties:
                                      id:
                                        description: The template's ID.
                                        example: fullName
                                        type: string
                                      label:
                                        description: The template's label.
                                        example: Full Name
                                        type: string
                                      placeholder:
                                        description: >-
                                          A string that temporarily takes the
                                          place of the final data.
                                        example: Your Name
                                        type: string
                                      type:
                                        description: |-
                                          The template's type.
                                          * `color`
                                          * `datetime-local`
                                          * `email`
                                          * `Medical`
                                          * `tel`
                                          * `text`
                                          * `textarea`
                                          * `url`
                                        enum:
                                          - color
                                          - datetime-local
                                          - email
                                          - Medical
                                          - tel
                                          - text
                                          - textarea
                                          - url
                                        example: text
                                        type: string
                                    type: object
                                  type: array
                                information:
                                  description: >-
                                    An object that provides basic template
                                    information.
                                  properties:
                                    date:
                                      description: The template's add date.
                                      example: '2020-06-30T00:00:00.000Z'
                                      format: ISO-8601 Date
                                      type: string
                                    description:
                                      description: A string describing the template.
                                      example: Single page 'About Me' site
                                      type: string
                                    id:
                                      description: A template name.
                                      example: about_me
                                      type: string
                                    name:
                                      description: The template's name.
                                      example: About Me
                                      type: string
                                    preview_image_path:
                                      description: The preview directory path.
                                      example: /preview.png
                                      format: path
                                      type: string
                                  type: object
                              type: object
                            path:
                              description: |-
                                The template directory path.

                                **Note:**

                                  The template directory's location depends on whether the `root` user or a reseller owns the template.
                              example: /usr/local/cpanel/3rdparty/share/site_templates
                              format: path
                              type: string
                            preview:
                              description: >-
                                Whether the template includes a preview image.

                                * `1` - The template directory contains a
                                `preview.png` file.

                                * `0` - The template directory does **not**
                                contain a `preview.png` file. The cPanel
                                interface will display a placeholder image for
                                this template.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            template:
                              description: "The template's name. This is the name of a directory that contains a `meta.json` template information\nfile and exists within one of the following directories:\n* `/var/cpanel/customizations/site_templates/` —\_The `root` user's templates.\n* `/home/username/var/cpanel/reseller/site_templates/` —\_A reseller's templates, where `username` represents the reseller's username.\n* `/usr/local/cpanel/3rdparty/share/site_templates/` —\_cPanel-provided templates.\n\n**Note:**\n\n  The template directory's location depends on whether the `root` user or a reseller owns the template."
                              example: about_me
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return available Site Publisher templates
      tags:
        - SiteTemplates
        - Site Publisher Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteTemplates \
              list_site_templates
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteTemplates/list_site_templates
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteTemplates_list_site_templates.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SiteTemplates_list_site_templates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteTemplates/,
                q/list_site_templates/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteTemplates_list_site_templates.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SiteTemplates_list_site_templates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteTemplates',
                'list_site_templates'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /SiteTemplates/list_user_settings:
    get:
      description: >-
        This function lists information for the cPanel account's [Site
        Publisher](https://go.cpanel.net/cpaneldocsSitePublisher) websites.


        **Note:**

          To retrieve the list of Site Publisher website information, the function queries the `configurations.json` file in each domain's document root. For more information, read our [Guide to Site Publisher Templates](https://go.cpanel.net/SitePublisherTemplates) documentation.

        **Important:**

          When you disable the [Web Server role](https://go.cpanel.net/howtouseserverprofiles#roles), the system **disables** this function.
      operationId: list_user_settings
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_user_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteTemplates
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing each domain's site
                          template information.
                        items:
                          properties:
                            documentroot:
                              description: >-
                                The domain's absolute path to the directory's
                                document root inside of the account's home
                                directory.
                              example: /home/example/public_html
                              format: path
                              type: string
                            domain:
                              description: The domain name.
                              example: example.com
                              format: domain
                              type: string
                            homedir:
                              description: >-
                                The absolute path to the cPanel account's home
                                directory.
                              example: /home/example
                              format: path
                              type: string
                            serveralias:
                              description: A list of the domain's aliases.
                              items:
                                example: www.example.com
                                format: domain
                                type: string
                              type: array
                            template_settings:
                              description: >-
                                An object containing template settings.


                                **Important:**


                                This object also contains the user's website
                                content. The template provider determines these
                                values.
                                  * For information about the content for cPanel-provided templates, read our [Guide to Site Publisher Templates](https://go.cpanel.net/SitePublisherTemplates) documentation.
                                  * For more information about other templates, contact the template provider.
                              properties:
                                is_empty:
                                  description: >-
                                    Whether the domain's `configurations.json`
                                    file exists and contains template
                                    information.

                                    * `1` — The `configurations.json` file
                                    exists and contains template information.

                                    * `0` — The `configurations.json` file does
                                    not exist, or does not contain template
                                    information.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                                path:
                                  description: >-
                                    The template directory path.

                                    *
                                    `/var/cpanel/customizations/site_templates/`
                                    — The `root` user's templates.

                                    *
                                    `/home/username/var/cpanel/reseller/site_templates/`
                                    — A reseller's templates, where username
                                    represents the reseller's `username`.

                                    *
                                    `/usr/local/cpanel/3rdparty/share/site_templates/`
                                    — cPanel-provided templates.
                                  enum:
                                    - /var/cpanel/customizations/site_templates/
                                    - >-
                                      /home/username/var/cpanel/reseller/site_templates/
                                    - >-
                                      /usr/local/cpanel/3rdparty/share/site_templates/
                                  example: >-
                                    /usr/local/cpanel/3rdparty/share/site_templates/
                                  format: path
                                  type: string
                                template:
                                  description: >-
                                    The template's name as it appears in the
                                    `configurations.json` file.
                                  example: mytemplate
                                  type: string
                            type:
                              description: |-
                                The domain's type.
                                * `main` — The main domain.
                                * `sub` — A subdomain.
                              enum:
                                - main
                                - sub
                              example: main
                              type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Site Publisher websites' information
      tags:
        - SiteTemplates
        - Site Publisher Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteTemplates \
              list_user_settings
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteTemplates/list_user_settings
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteTemplates_list_user_settings.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SiteTemplates_list_user_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteTemplates/,
                q/list_user_settings/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteTemplates_list_user_settings.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SiteTemplates_list_user_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteTemplates',
                'list_user_settings'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /SiteTemplates/publish:
    get:
      description: >-
        This function publishes a [Site
        Publisher](https://go.cpanel.net/cpaneldocsSitePublisher) website.

        * This function uses the `/scripts/process_site_template` script to
        publish the Site Publisher website.

        * This function creates the `configurations.json` file in the specified
        directory.
          * This file contains the user-entered data for the Site Publisher website and uses `0700` permissions.
          * For more information, read our [Guide to Site Publisher Templates](https://go.cpanel.net/SitePublisherTemplates) documentation.
        * When users publish a Site Publisher website, the system first creates
        a backup tarball of the target directory's contents in the
        `/site_publisher/backups/` directory within the user's home directory.


        **Notes:**

          * When users publish a Site Publisher website, the system logs template information and the target directory to the `/usr/local/cpanel/logs/error_log` file.
          * The template directory's location depends on whether the `root` user or a reseller owns the template:
            * `/var/cpanel/customizations/site_templates/` — The `root` user's templates.
            * `/home/username/var/cpanel/reseller/site_templates/` — A reseller's templates, where `username` represents the reseller's username.
            * `/usr/local/cpanel/3rdparty/share/site_templates/` — cPanel-provided templates.

        **Important:**

          When you disable the [_Web Server_](https://go.cpanel.net/howtouseserverprofiles#roles) role, the system **disables** this function.
      operationId: publish
      parameters:
        - description: The directory that will contain the Site Publisher website.
          in: query
          name: target  or  docroot
          required: true
          schema:
            example: /home/example/public_html
            format: path
            type: string
        - description: >-
            The template's variables and values.


            **Note:**


            * Use each variable's name as a parameter name for a parameter and
            value pair.

            * The template that you specify determines the values to define.

            * You **must** include the appropriate data for the selected
            template. If you use a cPanel-provided template, read our [Guide to
            Site Publisher
            Templates](https://go.cpanel.net/guide-to-site-publisher-templates-template-files)
            documentation for more information. If you use a third-party
            template, consult that template's documentation or its `meta.json`
            file.
          in: query
          name: parameter_name
          required: false
          schema:
            example: My Website
            type: string
        - description: >-
            The directory that contains the template's source directory.

            * `/var/cpanel/customizations/site_templates/` — The `root` user's
            templates.

            * `/home/username/var/cpanel/reseller/site_templates/` — A
            reseller's templates, where `username` represents the reseller's
            username.

            * `/usr/local/cpanel/3rdparty/share/site_templates/` —
            cPanel-provided templates.


            **Note:**


            You **must** include either the `source` parameter **or** the `path`
            and `template` parameters.
          in: query
          name: path
          required: false
          schema:
            example: /usr/local/cpanel/3rdparty/share/site_templates/
            format: path
            type: string
        - description: >-
            The absolute path to a template directory that exists in one of the
            following directories:


            * `/var/cpanel/customizations/site_templates/` — The `root` user's
            templates.

            * `/home/username/var/cpanel/reseller/site_templates/` — A
            reseller's templates, where `username` represents the reseller's
            username.

            * `/usr/local/cpanel/3rdparty/share/site_templates/` —
            cPanel-provided templates.


            If you do not specify a value, the system uses the path and template
            values to determine the template's source directory.


            **Note:**

             You **must** include either the `source` parameter **or** the `path` and `template` parameters.
          in: query
          name: source
          required: false
          schema:
            example: /usr/local/cpanel/3rdparty/share/site_templates/under_construction
            format: path
            type: string
        - description: >-
            The template's directory's name.


            **Note:**


            You **must** include either the `source` parameter **or** the `path`
            and `template` parameters.
          in: query
          name: template
          required: false
          schema:
            example: under_construction
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: publish
                    type: string
                  module:
                    description: The name of the module called.
                    example: SiteTemplates
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Add Site Publisher website
      tags:
        - SiteTemplates
        - Site Publisher Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SiteTemplates \
              publish \
              target  or  docroot='/home/example/public_html'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SiteTemplates/publish?target%20%20or%20%20docroot=%2fhome%2fexample%2fpublic_html
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SiteTemplates_publish.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SiteTemplates_publish.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SiteTemplates/,
                q/publish/,
                {
                    'target  or  docroot' => '/home/example/public_html',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SiteTemplates_publish.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SiteTemplates_publish.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SiteTemplates',
                'publish',
                array (
                    'target  or  docroot' => '/home/example/public_html',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /Sitejet/add_api_token:
    get:
      description: >-
        This function adds an existing Sitejet API token to a cPanel user.


        **Note:**


        You can create a Sitejet API token with the `Sitejet:create_account`
        function.
      operationId: add_sitejet_api_token
      parameters:
        - description: The Sitejet API token to add.
          in: query
          name: api_token
          required: true
          schema:
            example: d35d8ea651007ccd25f96486cdcdXXXX
            format: hexadecimal
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_api_token
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add an existing Sitejet API token.
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              add_api_token \
              api_token='d35d8ea651007ccd25f96486cdcdXXXX'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/add_api_token?api_token=d35d8ea651007ccd25f96486cdcdXXXX
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_add_api_token.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_add_api_token.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/add_api_token/,
                {
                    'api_token' => 'd35d8ea651007ccd25f96486cdcdXXXX',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_add_api_token.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_add_api_token.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'add_api_token',
                array (
                    'api_token' => 'd35d8ea651007ccd25f96486cdcdXXXX',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/can_create_domains:
    get:
      description: >-
        This function returns whether a cPanel account can create new subdomains
        or addon domains.


        **Note:**


        Creating a new addon domain is dependent on the creation of subdomains.
        If the cPanel account has reached its limit for subdomains, you cannot
        create a new addon domain, even if the limit for addon domains has not
        been reached.
      operationId: can_create_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: can_create_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the cPanel user can create a new subdomin or
                          addon domain.
                            * `1` - The cPanel user can create a new subdomain or addon domain.
                            * `0` - The cPanel user can not create a new subdomain or addon domain.
                        enum:
                          - 1
                          - 0
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Domain Availability
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              can_create_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/can_create_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_can_create_domains.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_can_create_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/can_create_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_can_create_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_can_create_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'can_create_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/create_account:
    get:
      description: This function creates a Sitejet API token for a cPanel account.
      operationId: create_sitejet_account
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_account
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          key:
                            description: The Sitejet API token for the cPanel account.
                            example: d35d8ea651007ccd25f96486cdcdXXXX
                            format: hexadecimal
                            type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Generate a Sitejet API key.
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              create_account
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/create_account
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_create_account.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_create_account.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/create_account/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_create_account.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_create_account.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'create_account'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/create_restore_point:
    get:
      description: >-
        This function creates a restore point for a domain's document root and
        removes the domain's files.
      operationId: create_restore_point
      parameters:
        - description: A cPanel account's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_restore_point
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create a restore point.
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              create_restore_point \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/create_restore_point?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_create_restore_point.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_create_restore_point.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/create_restore_point/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_create_restore_point.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_create_restore_point.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'create_restore_point',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 120
  /Sitejet/create_website:
    get:
      description: |-
        This function creates a Sitejet ID for the specified domain.

        **Note:**

        A unique Sitejet ID is assigned to each domain on the cPanel account.
      operationId: create_sitejet_website
      parameters:
        - description: The name of the company the website represents.
          in: query
          name: company
          required: true
          schema:
            example: cPanel
            type: string
        - description: A cPanel account's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
        - description: Assign website to other user.
          in: query
          name: assignTo
          required: false
          schema:
            example: SallySmith@example.com
            format: email
            type: string
        - description: The city where the company or website owner is located.
          in: query
          name: city
          required: false
          schema:
            example: Capitol City
            type: string
        - description: The country where the company or website owner is located.
          in: query
          name: country
          required: false
          schema:
            example: US
            format: ISO-3166
            type: string
        - description: The email address of the website owner.
          in: query
          name: email
          required: false
          schema:
            example: JohnSmith@example.com
            format: email
            type: string
        - description: The first name of the website owner.
          in: query
          name: firstname
          required: false
          schema:
            example: John
            type: string
        - description: The language to use for the Sitejet Website Builder.
          in: query
          name: language
          required: false
          schema:
            example: en
            format: ISO-639
            type: string
        - description: The last name of the website owner.
          in: query
          name: lastname
          required: false
          schema:
            example: Smith
            type: string
        - description: Additional metadata for the website.
          in: query
          name: metadata
          required: false
          schema:
            example: '{"Attribute1":9,"Attribute2":3,"Attribute3":5}'
            format: encoded JSON
            type: string
        - description: Additional notes about the website.
          in: query
          name: note
          required: false
          schema:
            example: This is my website for my business.
            type: string
        - description: The phone number of the company or website owner.
          in: query
          name: phone
          required: false
          schema:
            example: 000-123-4567
            type: string
        - description: The street address of the company or website owner.
          in: query
          name: street
          required: false
          schema:
            example: 1234 Main St
            type: string
        - description: The website title.
          in: query
          name: title
          required: false
          schema:
            example: Example Website
            type: string
        - description: The zip code where the company or website owner is located.
          in: query
          name: zip
          required: false
          schema:
            example: '99999'
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_website
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          websiteID:
                            description: The website ID of the created website.
                            example: 123456
                            type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Sitejet domain ID
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              create_website \
              domain='example.com' \
              company='cPanel'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/create_website?domain=example.com&company=cPanel
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_create_website.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_create_website.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/create_website/,
                {
                    'domain' => 'example.com',
                    'company' => 'cPanel',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_create_website.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_create_website.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'create_website',
                array (
                    'domain' => 'example.com',
                    'company' => 'cPanel',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/get_all_user_sitejet_info:
    get:
      description: >-
        This function returns the Sitejet domains' information for the cPanel
        account.
      operationId: get_all_user_sitejet_info
      parameters:
        - description: The single domain to return Sitejet information.
          in: query
          name: domain
          required: false
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_all_user_sitejet_info
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            domain:
                              description: The name of the cPanel user's domain.
                              example: example.com
                              type: string
                            metadata:
                              properties:
                                company:
                                  description: The website's comapany.
                                  example: cPanel
                                  type: string
                                cpanelDomainGUID:
                                  description: The cPanel user's domain.
                                  example: example.com
                                  type: string
                                fullcms:
                                  description: >-
                                    Whether the full Sitejet Content Management
                                    System is enabled.

                                    * `1` - Full CMS is enabled.

                                    * `0` - Full CMS is disabled.
                                  enum:
                                    - 1
                                    - 0
                                language:
                                  description: >-
                                    The language selection for the Sitejet
                                    Content Management System.
                                  example: en
                                  format: ISO-639
                                  type: string
                                latest_publish_date:
                                  description: >-
                                    The last successful publication of the
                                    Sitejet domain in Unix time format.
                                  format: unix-timestamp
                                  type: integer
                                publish_status:
                                  description: |-
                                    Whether the Sitejet domain is published.
                                    * `1` - Website is published.
                                    * `0` - Website is not published.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                                websiteId:
                                  description: The website ID of the created website.
                                  example: 444444
                                  type: integer
                            quota:
                              properties:
                                available_space:
                                  description: >-
                                    The amount of space available in megabytes
                                    (MB).
                                  example: 1024
                                  type: integer
                                can_backup:
                                  description: >-
                                    Whether the document root has enough space
                                    to make a backup.

                                    * `1` - There is enough space.

                                    * `0` - There is not enough space.
                                  enum:
                                    - 1
                                    - 0
                                is_empty_docroot:
                                  description: |-
                                    Whether the document root is empty.
                                    * `1` - Document root is empty.
                                    * `0` - Document root is not empty.
                                  enum:
                                    - 1
                                    - 0
                                required_space:
                                  description: >-
                                    The amount of space required in megabytes
                                    (MB) for a document root backup.
                                  example: 64
                                  type: integer
                            redirection_enabled:
                              description: |-
                                Whether the domain redirects to another URL.
                                * 1 - Redirects.
                                * 0 - Doesn't redirect.
                              enum:
                                - 1
                                - 0
                              type: integer
                            shared_doc_root:
                              description: >-
                                whether the sitejet domain is sharing the
                                document_root.

                                * 1 - document_root is shared.

                                * 0 - document_root is not shared.
                              enum:
                                - 1
                                - 0
                              type: integer
                            is_restore_point_available:
                              description: |-
                                Whether the sitejet domain has a restore point.
                                * `1` – Restore point is available.
                                * `0` – Restore point is not available.
                              enum:
                                - 1
                                - 0
                              type: integer
                            is_temporary_domain:
                              description: >-
                                Whether the domain is a temporary domain (for
                                example, cpanel.site).

                                * `1` – Domain is a temporary domain.

                                * `0` – Domain is not a temporary domain.
                              enum:
                                - 1
                                - 0
                              type: integer
                            status:
                              properties:
                                has_sitejet_published:
                                  description: |-
                                    Whether the Sitejet website is published.
                                    * `1` - Sitejet website is published.
                                    * `0` - Sitejet website is not published.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                                has_sitejet_website:
                                  description: >-
                                    Whether the domain's document root diretory
                                    contains a Sitejet directory.

                                    * `1` - User has created a Sitejet website.

                                    * `0` - User has not created a Sitejet
                                    website.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                                is_sitejet:
                                  description: >-
                                    Whether the domain's document root
                                    diretory's `index.html` file contains
                                    Sitejet deployed content.

                                    * `1` - User has a Sitejet website.

                                    * `0` - User does not have a Sitejet
                                    website.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                                ssl_status:
                                  description: >-
                                    Whether the domain has a valid SSL
                                    certificate.

                                    * `1` - Domain has a valid SSL certificate.

                                    * `0` - Domain does not have a valid SSL
                                    certificate or certificate is invalid.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                          is_beta:
                            description: >-
                              Whether the server has access to beta features of
                              the Sitejet Builder.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Sitejet domains
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              get_all_user_sitejet_info
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/get_all_user_sitejet_info
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_get_all_user_sitejet_info.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_all_user_sitejet_info.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/get_all_user_sitejet_info/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_get_all_user_sitejet_info.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_all_user_sitejet_info.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'get_all_user_sitejet_info'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/get_api_token:
    get:
      description: This function returns the cPanel account's Sitejet API token.
      operationId: get_sitejet_api_token
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_api_token
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        description: The cPanel account's Sitejet API token.
                        example: d35d8ea651007ccd25f96486cdcdXXXX
                        format: hexadecimal
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Sitejet API token
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              get_api_token
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/get_api_token
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_get_api_token.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_api_token.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/get_api_token/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_get_api_token.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_api_token.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'get_api_token'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/get_preview_url:
    get:
      description: This function returns a Sitejet website's preview URL.
      operationId: get_sitejet_preview_url
      parameters:
        - description: The Sitejet website ID for the domain.
          in: query
          name: websiteId
          required: true
          schema:
            example: 123456
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_preview_url
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        description: The Sitejet website's preview URL.
                        example: https://api.sitehub.io/website/example/previewurl
                        format: URL
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Sitejet preview URL
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              get_preview_url \
              websiteId='123456'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/get_preview_url?websiteId=123456
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_get_preview_url.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_preview_url.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/get_preview_url/,
                {
                    'websiteId' => '123456',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_get_preview_url.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_preview_url.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'get_preview_url',
                array (
                    'websiteId' => '123456',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/get_sso_link:
    get:
      description: This function returns a Sitejet website's SSO URL.
      operationId: get_sitejet_sso_link
      parameters:
        - description: The cPanel account's Sitejet domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
        - description: The cPanel interface referral URL.
          in: query
          name: referrer
          required: true
          schema:
            example: >-
              https://example.com:2083/cpsess##########/frontend/jupiter/sitejet/index.html%23
            type: string
        - description: >-
            Specifies which Sitejet SaaS user interface mode the user will be
            redirected to.
          in: query
          name: ui_mode
          required: false
          schema:
            enum:
              - prompt
              - ai
              - template
            example: prompt
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_sso_link
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        description: The SSO link to the Sitejet CMS.
                        example: >-
                          https://my.sitehub.io/website/edit?ssotoken=exampletokenstring
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Sitejet SSO URL
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              get_sso_link \
              domain='example.com' \
              referrer='https://example.com:2083/cpsess##########/frontend/jupiter/sitejet/index.html%23'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/get_sso_link?domain=example.com&referrer=https%3a%2f%2fexample.com%3a2083%2fcpsess%23%23%23%23%23%23%23%23%23%23%2ffrontend%2fjupiter%2fsitejet%2findex.html%2523
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_get_sso_link.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_sso_link.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/get_sso_link/,
                {
                    'domain' => 'example.com',
                    'referrer' => 'https://example.com:2083/cpsess##########/frontend/jupiter/sitejet/index.html%23',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_get_sso_link.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_sso_link.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'get_sso_link',
                array (
                    'domain' => 'example.com',
                    'referrer' => 'https://example.com:2083/cpsess##########/frontend/jupiter/sitejet/index.html%23',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/get_templates:
    get:
      deprecated: true
      description: This function fetches the list of available Sitejet templates.
      operationId: get_sitejet_templates
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_templates
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            createdAt:
                              description: The templates creation date.
                              example: '2023-05-04T07:21:20.000Z'
                              format: date-time
                              type: string
                            description:
                              description: The template's description.
                              example: Example template description
                              type: string
                            id:
                              description: The template's ID.
                              example: '123456'
                              type: integer
                            image:
                              description: >-
                                The relative path to the template image on the
                                SiteJet CMS website.
                              example: /images/1024/6824140/template_image.png
                              type: string
                            name:
                              description: The template's name.
                              example: example template
                              type: string
                            previewUrl:
                              description: The website's preview URL.
                              example: https://www.example-template.com
                              type: string
                            tags:
                              description: The template's catagory search tags.
                              items:
                                example: blog
                                type: string
                              type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Sitejet templates
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              get_templates
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/get_templates
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_get_templates.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_templates.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/get_templates/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_get_templates.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_get_templates.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'get_templates'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/restore_document_root:
    get:
      description: This function reverts a document root to the restore point.
      operationId: restore_document_root
      parameters:
        - description: A cPanel account's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: restore_document_root
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Restore a domain from the restore point.
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              restore_document_root \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/restore_document_root?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_restore_document_root.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_restore_document_root.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/restore_document_root/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_restore_document_root.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_restore_document_root.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'restore_document_root',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 120
  /Sitejet/set_template:
    get:
      deprecated: true
      description: This function sets a Sitejet website's template.
      operationId: set_sitejet_template
      parameters:
        - description: A cPanel account's domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
        - description: The Sitejet template's ID.
          in: query
          name: templateId
          required: true
          schema:
            example: '12345'
            type: string
        - description: The Sitejet template name.
          in: query
          name: templateName
          required: true
          schema:
            example: A great template
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_template
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update Sitejet template
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              set_template \
              domain='example.com' \
              templateId='12345'
              templateName='A great template'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/set_template?domain=example.com&templateId=12345&templateName=A%20great%20template
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_set_template.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_set_template.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/set_template/,
                {
                    'domain' => 'example.com',
                    'templateId' => '12345',
                    'templateName' => 'A great template'
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_set_template.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_set_template.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'set_template',
                array (
                    'domain' => 'example.com',
                    'templateId' => '12345',
                    'templateName' => 'A great template'
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Sitejet/start_publish:
    get:
      description: This function publishes a domain's Sitejet website.
      operationId: start_publish_sitejet
      parameters:
        - description: The domain for the Sitejet website.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            type: string
        - description: >-
            Whether to cleanup the domain's `document_root` directory during the
            publication process.

            * `1` — Remove previous files in domain's `document_root` directory
            during the publication process.

            * `0` — Do **not** remove any files in domain's `document_root`
            directory during the publication process.
          in: query
          name: cleanup
          required: false
          schema:
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: start_publish
                    type: string
                  module:
                    description: The name of the module called.
                    example: Sitejet
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          file_name:
                            description: >-
                              The publish process's log file name.


                              **Note:**


                              The system stores this file in the `logs/`
                              directory, relative to the cPanel account's home
                              directory.
                            example: /home/cpuser/logs/publish_2024-02-02T16:46:58.log
                            type: string
                          pid:
                            description: The publish action's process ID.
                            example: 123456
                            type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Publish Sitejet domain
      tags:
        - Sitejet
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Sitejet \
              start_publish \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Sitejet/start_publish?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Sitejet_start_publish.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Sitejet_start_publish.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Sitejet/,
                q/start_publish/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Sitejet_start_publish.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Sitejet_start_publish.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Sitejet',
                'start_publish',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /SpamAssassin/clear_spam_box:
    get:
      description: >-
        This function clears the spam box of all its contents for all email
        accounts.


        **Important:**


        This function deletes the Spam Box folder contents for every email
        address on the account, which includes the system user email account.
      operationId: clear_spam_box
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: clear_spam_box
                    type: string
                  module:
                    description: The name of the module called.
                    example: SpamAssassin
                    type: string
                  result:
                    properties:
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete spam box contents
      tags:
        - SpamAssassin
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SpamAssassin \
              clear_spam_box
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SpamAssassin/clear_spam_box
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SpamAssassin_clear_spam_box.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_clear_spam_box.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SpamAssassin/,
                q/clear_spam_box/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SpamAssassin_clear_spam_box.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_clear_spam_box.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SpamAssassin',
                'clear_spam_box'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /SpamAssassin/get_symbolic_test_names:
    get:
      description: >-
        This function lists the Apache SpamAssassin™ scores for each symbolic
        test.
      operationId: get_symbolic_test_names
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  errors: {}
                  func:
                    description: The name of the method called.
                    example: get_symbolic_test_names
                    type: string
                  messages: {}
                  module:
                    description: The name of the module called.
                    example: SpamAssassin
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            key:
                              description: The name of the test.
                              example: ACT_NOW_ALL_CAPS
                              type: string
                            rule_type:
                              description: >-
                                The type and section of the email that the
                                SpamAssassin analyses.

                                * `body_tests`

                                * `full_evals`

                                * `head_evals`

                                * `head_tests`

                                * `meta_tests`

                                * `other_tests`

                                * `rawbody_tests`

                                * `uri_tests`
                              enum:
                                - body_tests
                                - full_evals
                                - head_evals
                                - head_tests
                                - meta_tests
                                - other_tests
                                - rawbody_tests
                                - uri_tests
                              example: body_tests
                              type: string
                            score:
                              description: >-
                                The score to assign to the email if the result
                                of the test is true.
                              example: 1
                              oneOf:
                                - type: number
                                - type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                  status: {}
                type: object
          description: HTTP Request was successful.
      summary: Return SpamAssassin™ symbolic test scores
      tags:
        - SpamAssassin
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SpamAssassin \
              get_symbolic_test_names
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SpamAssassin/get_symbolic_test_names
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SpamAssassin_get_symbolic_test_names.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_get_symbolic_test_names.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SpamAssassin/,
                q/get_symbolic_test_names/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SpamAssassin_get_symbolic_test_names.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_get_symbolic_test_names.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SpamAssassin',
                'get_symbolic_test_names'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /SpamAssassin/get_user_preferences:
    get:
      description: >-
        This function lists the Apache SpamAssassin™ settings for the account.


        **Note:**


        Additional customizations may appear in the returns. Form more
        information read the [Apache SpamAssassin™ configuration
        file](https://spamassassin.apache.org/full/3.1.x/doc/Mail_SpamAssassin_Conf.html#user_preferences)
        documentation.
      operationId: get_user_preferences
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_user_preferences
                    type: string
                  module:
                    description: The name of the module called.
                    example: SpamAssassin
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          blacklist_from:
                            description: The email addresses on the blacklist.
                            items:
                              example: username2@example.com
                              format: email
                              type: string
                            type: array
                          required_score:
                            description: >-
                              The score to mark a message as spam. The system
                              considers mail that matches this score to be spam.
                            items:
                              example: 5.1
                              format: float
                              type: number
                            type: array
                          score:
                            description: The symbolic test name and score.
                            items:
                              example: ACT_NOW_CAPS 1
                              type: string
                            type: array
                          whitelist_from:
                            description: The email addresses on the whitelist.
                            items:
                              example: username@example.com
                              format: email
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return SpamAssassin™ settings
      tags:
        - SpamAssassin
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SpamAssassin \
              get_user_preferences
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SpamAssassin/get_user_preferences
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SpamAssassin_get_user_preferences.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_get_user_preferences.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SpamAssassin/,
                q/get_user_preferences/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SpamAssassin_get_user_preferences.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_get_user_preferences.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SpamAssassin',
                'get_user_preferences'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /SpamAssassin/update_user_preference:
    get:
      description: >-
        This function sets the Apache SpamAssassin™ settings for the account.


        **Note:**


        Additional customizations may appear in the function's return. For more
        information,

        read the [Apache SpamAssassin configuration file
        documentation](https://spamassassin.apache.org/full/3.1.x/doc/Mail_SpamAssassin_Conf.html#user_preferences).
      operationId: update_user_preference
      parameters:
        - description: >-
            The variable that you want to manipulate.


            * `score`

            * `required_score`

            * `whitelist_from`

            * `blacklist_from`

            * A [custom SpamAssassin
            variable](https://spamassassin.apache.org/full/3.1.x/doc/Mail_SpamAssassin_Conf.html#user_preferences).


            **Important:**


            * You can **only** choose one of these possible values per call.

            * If you enter a value for the `preference` parameter, but you do
            **not** define a value for the `value` parameter, the function will
            remove any previous settings.
          example: score
          in: query
          name: preference
          required: true
          schema:
            type: string
        - description: >-
            The value for the preference of the variable that you want to
            manipulate.


            * A valid SpamAssassin "`TEST_NAME SCORE`" value when the value of
            the `preference` parameter is `score`, where:

                * `TEST_NAME` represents the symbolic name of the test. For list of symbolic test names, run the UAPI `SpamAssassin::get_symbolic_test_names` function.
                * `SCORE` represents the floating-point value that SpamAssassin assigns to the mail when the test result is true. The score value must be greater than `0`, and less than `1000`.

            * A valid floating-point number if the value of the `preference`
            parameter is `required_score`.

            * A valid email address if the value of the `preference` parameter
            is `whitelist_from` or `blacklist_from`.

            * A [custom SpamAssassin
            variable](https://spamassassin.apache.org/full/3.1.x/doc/Mail_SpamAssassin_Conf.html#user_preferences)
            value.


            **Note:**


            To enter multiple values, increment the parameter name. For example,
            use the `value-0` and `value-1` parameters.
          examples:
            multiple:
              summary: Define multiple variable values.
              value: value-0=ACT_NOW_CAPS 5.0 value-1=INVALID_DATE 3.2
            single:
              summary: Define a single variable value.
              value: ACT_NOW_CAPS 5.0
          in: query
          name: value
          required: false
          schema:
            example: ACT_NOW_CAPS 5.0
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update_user_preference
                    type: string
                  module:
                    description: The name of the module called.
                    example: SpamAssassin
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          blacklist_from:
                            - username2@example.com
                          ok_locales:
                            - all
                          required_score:
                            - 5
                          score:
                            - ACT_NOW_CAPS 5
                          whitelist_from:
                            - username@example.com
                        properties:
                          additionalProperties:
                            description: >-
                              An array containing custom SpamAssassin variable
                              values.


                              **Note:**


                              The array's name is the custom SpamAssassin
                              variable's name.
                            items:
                              example: mycustomscore
                              type: string
                          blacklist_from:
                            description: An array of email addresses on the blacklist.
                            items:
                              example: username2@example.com
                              format: email
                              type: string
                            type: array
                          required_score:
                            description: >-
                              An array containing the score at which the system
                              will mark a message as spam. The system considers
                              mail that matches this score to be spam.
                            items:
                              example: 5
                              format: float
                              type: number
                            type: array
                          score:
                            description: >-
                              An array of the symbolic test names and their
                              scores.
                            items:
                              example: ACT_NOW_CAPS 5
                              type: string
                            type: array
                          whitelist_from:
                            description: An array of the email addresses on the whitelist.
                            items:
                              example: username@example.com
                              format: email
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update SpamAssassin™ settings
      tags:
        - SpamAssassin
        - Spam Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SpamAssassin \
              update_user_preference \
              preference='score'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SpamAssassin/update_user_preference?preference=score
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SpamAssassin_update_user_preference.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_update_user_preference.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SpamAssassin/,
                q/update_user_preference/,
                {
                    'preference' => 'score',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SpamAssassin_update_user_preference.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SpamAssassin_update_user_preference.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SpamAssassin',
                'update_user_preference',
                array (
                    'preference' => 'score',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Stats/get_bandwidth:
    get:
      description: >-
        This function retrieves a list of bandwidth records for the domains on a
        cPanel account.


        **Note:**


        This function also returns the bandwidth use of a [distributed cPanel
        account](https://docs.cpanel.net/knowledge-base/cpanel-product/cpanel-glossary#distributed-cpanel-account).


        **Warning:**


        This function requires the _Bandwidth Stats_ feature. To enable this
        feature, use WHM's [_Feature
        Manager_](https://go.cpanel.net/whmdocsFeatureManager)

        interface (_WHM >> Home >> Packages >> Feature Manager_).
      operationId: get_bandwidth
      parameters:
        - description: "The timezone in which to report the data, in [Olson tz format](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).\n\n**Note:**\n\nThis parameter\_defaults to the server's timezone."
          in: query
          name: timezone
          required: false
          schema:
            example: America/Chicago
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_bandwidth
                    type: string
                  module:
                    description: The name of the module called.
                    example: Stats
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            bytes:
                              description: The domain's bandwidth usage, in bytes.
                              example: 74845
                              minimum: 0
                              type: integer
                            domain:
                              description: >-
                                The domain for which to display bandwidth
                                statistics.


                                **Note:**


                                The function only returns this value if the
                                `protocol` return's value is `http`.
                              example: example.com
                              format: domain
                              type: string
                            month_start:
                              description: The beginning of the report window.
                              example: 1561957200
                              format: unix_timestamp
                              type: integer
                            protocol:
                              description: |-
                                The protocol for which to provide data.
                                  * `http`
                                  * `imap`
                                  * `smtp`
                                  * `pop3`
                                  * `ftp`
                              enum:
                                - http
                                - imap
                                - smtp
                                - pop3
                                - ftp
                              example: imap
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return bandwidth statistics for all domains
      tags:
        - Stats
        - Domain Statistics
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Stats \
              get_bandwidth
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Stats/get_bandwidth
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Stats_get_bandwidth.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Stats_get_bandwidth.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Stats/,
                q/get_bandwidth/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Stats_get_bandwidth.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Stats_get_bandwidth.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Stats',
                'get_bandwidth'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Stats/get_site_errors:
    get:
      description: "This function\_returns entries from a domain's error log."
      operationId: get_site_errors
      parameters:
        - description: The domain for which to return error log entries.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: "The [Apache log file](https://go.cpanel.net/cpanellogfiles) to query.\nThis parameter defaults to\_error.\n\n* `error` - The `/var/log/apache2/error_log` file.\n* `suexec` - The `/var/log/apache2/suexec_log` file."
          in: query
          name: log
          required: false
          schema:
            enum:
              - error
              - suexec
            example: suexec
            type: string
        - description: The number of lines to retrieve from the error log.
          in: query
          name: maxlines
          required: false
          schema:
            default: 300
            example: 250
            maximum: 5000
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_site_errors
                    type: string
                  module:
                    description: The name of the module called.
                    example: Stats
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            date:
                              description: The date that the system recorded the error.
                              example: 1234576704
                              format: unix_timestamp
                              type: integer
                            entry:
                              description: The error log entry.
                              example: >-
                                [Fri Feb 13 19:58:24.420593 2009] [core:error]
                                [pid 29228:tid 47876185720577] (13)Permission
                                denied: [client 10.0.0.2:62908] AH00132: file
                                permissions deny server access:
                                /home/user/public_html/index.html
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings

                          describe non-critical failures or other problematic
                          conditions

                          noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return specified domain access log
      tags:
        - Stats
        - Domain Statistics
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Stats \
              get_site_errors \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Stats/get_site_errors?domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Stats_get_site_errors.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Stats_get_site_errors.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Stats/,
                q/get_site_errors/,
                {
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Stats_get_site_errors.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Stats_get_site_errors.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Stats',
                'get_site_errors',
                array (
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Stats/list_sites:
    get:
      description: >-
        This function displays the Analog statistics for the domains on a cPanel
        account.
      operationId: list_sites
      parameters:
        - description: |-
            The statistics engine.
            * `webalizer`
            * `analog`
          in: query
          name: engine
          required: true
          schema:
            enum:
              - webalizer
              - analog
            example: webalizer
            type: string
        - description: |-
            The web traffic type.
             * `http`
             * `ftp`
          in: query
          name: traffic
          required: false
          schema:
            default: http
            enum:
              - http
              - ftp
            example: http
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_sites
                    type: string
                  module:
                    description: The name of the module called.
                    example: Stats
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            all_domains:
                              description: >-
                                Whether the statistics file's filepath is for
                                all the domains on a cPanel account.

                                * `1` - All domains.

                                * `0` - An individual domain.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            domain:
                              description: The domain for which to display statistics.
                              example: example.com
                              format: domain
                              type: string
                            path:
                              description: The filepath to the statistics file.
                              example: /tmp/user/webalizer/index.html
                              format: path
                              type: string
                            ssl:
                              description: >-
                                Whether the function generates statistics from
                                SSL requests.

                                * `1` - Generates statistics for SSL requests.

                                * `0` - Generates statistics for non-SSL
                                requests.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Analog statistics for all domains
      tags:
        - Stats
        - Domain Statistics
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Stats \
              list_sites \
              engine='webalizer'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Stats/list_sites?engine=webalizer
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Stats_list_sites.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Stats_list_sites.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Stats/,
                q/list_sites/,
                {
                    'engine' => 'webalizer',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Stats_list_sites.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Stats_list_sites.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Stats',
                'list_sites',
                array (
                    'engine' => 'webalizer',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /Stats/list_stats_by_domain:
    get:
      description: This function returns a domain's Analog statistics.
      operationId: list_stats_by_domain
      parameters:
        - description: The domain from which to retrieve statistics.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: The statistics engine. `analog` is the only possible value.
          in: query
          name: engine
          required: true
          schema:
            enum:
              - analog
            example: analog
            type: string
        - description: |-
            Whether to return statistics from SSL requests.
              * `1` - Return statistics for SSL requests.
              * `0` - Return statistics for non-SSL requests.
          in: query
          name: ssl
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_stats_by_domain
                    type: string
                  module:
                    description: The name of the module called.
                    example: Stats
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            date:
                              description: The current date and time.
                              example: 1565795929
                              format: unix_timestamp
                              type: integer
                            url:
                              description: >-
                                The URL of the file from which the system
                                generates statistics reports.
                              example: tmp/cptest/analog/8.html.com
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Analog statistics for specified domain
      tags:
        - Stats
        - Domain Statistics
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Stats \
              list_stats_by_domain \
              engine='analog' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Stats/list_stats_by_domain?engine=analog&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Stats_list_stats_by_domain.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/Stats_list_stats_by_domain.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Stats/,
                q/list_stats_by_domain/,
                {
                    'engine' => 'analog',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Stats_list_stats_by_domain.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/Stats_list_stats_by_domain.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Stats',
                'list_stats_by_domain',
                array (
                    'engine' => 'analog',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /StatsBar/get_stats:
    get:
      description: This function retrieves a cPanel account's statistics.
      operationId: get_stats
      parameters:
        - description: >-
            A pipe-delimited list of the account's statistics.


            <details>
              <summary>Click for a list of available display parameters.</summary>

              * `addondomains` — Information about the account's addon domains.
              * `apacheversion` — The server's Apache version.
              * `autoresponders` — Information about the account's auto-responders.
              * `bandwidthusage` — Information about the account's bandwidth usage.
              * `cachedlistdiskusage` — The amount of cached mailing list disk space the account currently uses.
              * `cachedmysqldiskusage` — The amount of cached disk space that the account's MySQL® databases currently use.
              * `cachedpostgresdiskusage` — The amount of cached disk space that the account's PostgreSQL databases use.
              * `cpanelversion` — The server's cPanel version.
              * `dedicatedip` — Account websites that use dedicated IP addresses.
              * `diskusage` — Information the account's disk space usage.
              * `emailaccounts` — Information about the account's email accounts.
              * `emailfilters` — Information the account's email filters.
              * `emailforwarders` — Information about the account's forwarders.
              * `fileusage` — Information about the account's file usage.
              * `ftpaccounts` — Information about the account's FTP accounts.
              * `hostingpackage` — The account's hosting package.
              * `hostname` — The server's hostname.
              * `kernelversion` — The operating system's kernel version.
              * `localip` — Account websites that use local IP addresses.
              * `machinetype` — The type of operating system that the server uses.
              * `mailinglists` — Information the account's mailing lists.
              * `mysqldatabases` — The number of MySQL databases the account possesses.
              * `mysqldiskusage` — The amount of disk space that the account's MySQL databases use.
              * `mysqlversion` — The server's MySQL version.
              * `operatingsystem` — The server's operating system.
              * `parkeddomains` — Information about the account's parked domains (aliases).
              * `perlpath` — The Perl binary's absolute path.
              * `perlversion` — The server's Perl version.
              * `phpversion` — The server's PHP version.
              * `postgresqldatabases` — The number of PostgreSQL databases the cPanel account possesses.
              * `postgresdiskusage` — The amount of disk space that the cPanel account's PostgreSQL databases use.
              * `sendmailpath` — The path to the system's sendmail binary.
              * `sharedip` — Any of the account's websites that use a shared IP address.
              * `shorthostname` — The short version of your server's hostname.
              * `sqldatabases` — Information about the all of the account's SQL databases.
              * `subdomains` — Information about the account's subdomains.
              * `theme` — The account's current theme.
            </details>


            **Note:**


            * This function may require URI-encode format (`%7C`) or quotes
            (`"`) in some

            contexts, such as the command line tool.

            * Some display parameters may be unavailable based on the server's
            configuration.
          in: query
          name: display
          required: true
          schema:
            example: bandwidthusage|diskusage
            type: string
        - description: The absolute file path to an alternative infinity symbol image.
          in: query
          name: infinityimg
          required: false
          schema:
            default: null
            example: /home/example/infinity.png
            nullable: true
            type: string
        - description: A phrase to represent infinity that the locales system can use.
          in: query
          name: infinitylang
          required: false
          schema:
            default: null
            example: infinity
            nullable: true
            type: string
        - description: |-
            The type of row.

            * `odd`
            * `even`
          in: query
          name: rowcounter
          required: false
          schema:
            default: null
            example: even
            nullable: true
            type: string
        - description: The minimum level at which to return warnings.
          in: query
          name: warninglevel
          required: false
          schema:
            default: null
            example: 87
            maximum: 100
            minimum: 1
            nullable: true
            type: integer
        - description: "Whether to return all results with a warning.\n\n* `1` —\_Return only warnings that **exceed** the `warninglevel` parameter's\nvalue.\n* `0` —\_Return all results."
          in: query
          name: warnings
          required: false
          schema:
            default: null
            enum:
              - 1
              - 0
            example: 0
            nullable: true
            type: integer
        - description: "Whether to display results with a value of\_`100%`.\n\n* `1`\_—\_Display results with a value of `100%`.\n* `0` —\_Hide results with a value of `100%`."
          in: query
          name: warnout
          required: false
          schema:
            default: null
            enum:
              - 1
              - 0
            example: 0
            nullable: true
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_stats
                    type: string
                  module:
                    description: The name of the module called.
                    example: StatsBar
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing results from the
                          queried account.
                        example:
                          - _count: '0.00'
                            _max: '1024.00'
                            _maxed: 0
                            count: 0 bytes
                            feature: bandwidth
                            id: bandwidthusage
                            is_maxed: 0
                            item: Monthly Bandwidth Transfer
                            max: 1 GB
                            maxed_phrase: >-
                              You have transferred your maximum allotment of
                              data ([format_bytes,_1]) for this month.
                            module: Stats
                            name: bandwidthusage
                            near_limit_phrase: >-
                              You have transferred [format_bytes,_1] of your
                              [format_bytes,_2] data allotment for this month.
                            normalized: 1
                            percent: 0
                            percent10: 0
                            percent20: 0
                            percent5: 0
                            phrase: Monthly Bandwidth Transfer
                            rowtype: even
                            units: MB
                            zeroisunlimited: 1
                          - _count: '1.75'
                            _max: '1024.00'
                            _maxed: 0
                            count: 1.75 MB
                            id: diskusage
                            is_maxed: 0
                            item: Disk Space Usage
                            langkey: INDXDiskUsage
                            max: 1 GB
                            maxed_phrase: >-
                              You are using your maximum storage allotment,
                              [format_bytes,_1].
                            module: Quota
                            name: diskusage
                            near_limit_phrase: >-
                              You are using [format_bytes,_1] of the
                              [format_bytes,_2] of storage available to you.
                            normalized: 1
                            percent: 0
                            percent10: 0
                            percent20: 0
                            percent5: 0
                            phrase: Disk Space Usage
                            rowtype: odd
                            units: MB
                            zeroisunlimited: 1
                        items:
                          properties:
                            _count:
                              description: The queried data's value.
                              type: string
                            _max:
                              description: The queried parameter's limit.
                              type: string
                            _maxed:
                              description: >-
                                Whether the queried value reached its maximum
                                value.


                                * `1` — Reached maximum value.

                                * `0` — Has **not** reached maximum value.
                              enum:
                                - 1
                                - 0
                              type: integer
                            condition:
                              description: >-
                                Whether the queried data's value possesses a
                                conditional requirement.


                                * `1` — Possesses a condition.

                                * `0` — Does **not** possess a condition.


                                **Note:**


                                The function will **only** return this value if
                                it determines that the

                                related statistic meets the subsystem
                                installation requirements.
                              enum:
                                - 1
                                - 0
                              type: integer
                            count:
                              description: The queried data's value.
                              type: string
                            feature:
                              description: The queried item's feature name.
                              type: string
                            id:
                              description: The queried item's reference name.
                              type: string
                            is_maxed:
                              description: "Whether the queried value has reached its maximum value.\n\n* `1` —\_The queried value has reached its maximum value.\n* `0` —\_The queried value has **not** reached its maximum value."
                              enum:
                                - 1
                                - 0
                              type: integer
                            item:
                              description: A human-readable version of the queried item.
                              type: string
                            max:
                              description: The queried value's maximum limit.
                              type: string
                            maxed_phrase:
                              description: >-
                                The
                                [`maketext`-formatted](https://go.cpanel.net/locale)
                                message

                                that the interface displays when the user
                                reaches their maximum

                                allowed value.
                              type: string
                            module:
                              description: The module that retrieved the information.
                              example: Quota
                              type: string
                            name:
                              description: The display key.
                              example: diskusage
                              type: string
                            near_limit_phrase:
                              description: >-
                                The
                                [`maketext`-formatted](https://go.cpanel.net/locale)
                                message

                                that the interface displays when the user
                                approaches their

                                maximum allowed value.
                              type: string
                            normalized:
                              description: >-
                                Whether the function normalized the output
                                values.


                                * `1` — Normalized.

                                * `0` — Did **not** normalize.
                              enum:
                                - 1
                                - 0
                              type: integer
                            percent:
                              description: The percentage of value, if applicable.
                              type: integer
                            percent10:
                              description: >-
                                The percentage of value that the system rounds
                                to the nearest ten, if applicable.
                              multipleOf: 10
                              type: integer
                            percent20:
                              description: >-
                                The percentage of value that the system rounds
                                to the nearest twenty, if applicable.
                              multipleOf: 20
                              type: integer
                            percent5:
                              description: >-
                                The percentage of value that the system rounds
                                to the nearest five, if applicable.
                              multipleOf: 5
                              type: integer
                            phrase:
                              description: The human-readable name of the queried item.
                              type: string
                            role:
                              description: |-
                                The queried value's role.

                                * `CalendarContact`
                                * `DNS`
                                * `FileStorage`
                                * `FTP`
                                * `MailLocal`
                                * `MailReceive`
                                * `MailSend`
                                * `MySQL`
                                * `Postgres`
                                * `SpamFilter`
                                * `Webmail`
                                * `WebDisk`
                                * `WebServer`
                              enum:
                                - CalendarContact
                                - DNS
                                - FileStorage
                                - FTP
                                - MailLocal
                                - MailReceive
                                - MailSend
                                - MySQL
                                - Postgres
                                - SpamFilter
                                - Webmail
                                - WebDisk
                                - WebServer
                              type: string
                            rowtype:
                              description: |-
                                The queried value's row type.

                                * `even`
                                * `odd`
                              enum:
                                - even
                                - odd
                              type: string
                            units:
                              description: The queried value's unit of measure.
                              type: string
                            zeroisunlimited:
                              description: |-
                                Whether a value of `0` means unlimited or zero.

                                * `1` — Unlimited.
                                * `0` — Zero.
                              enum:
                                - 1
                                - 0
                              type: integer
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account statistics
      tags:
        - StatsBar
        - Resource Usage and Statistics
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              StatsBar \
              get_stats \
              display='bandwidthusage|diskusage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/StatsBar/get_stats?display=bandwidthusage%7cdiskusage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file StatsBar_get_stats.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/StatsBar_get_stats.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/StatsBar/,
                q/get_stats/,
                {
                    'display' => 'bandwidthusage|diskusage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file StatsBar_get_stats.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/StatsBar_get_stats.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'StatsBar',
                'get_stats',
                array (
                    'display' => 'bandwidthusage|diskusage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /StatsManager/get_configuration:
    get:
      description: >-
        This function lists the configuration of the web log anayzers for each
        domain on the cPanel account.


        **Important:**


        When you disable the WebServer role the system disables this function.
        For more information, read our How to Use [Server Profiles
        documentation](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/).


        **Note**


        Additional web log analyzer configuration such as if the user can edit
        their own configuration is provided in the metadata section of the
        return.
      operationId: stats_manager_get_configuration
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: StatsManager
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          A list of domains and the status of each of the web
                          log analyzers available in cPanel for that domain.
                        items:
                          properties:
                            analyzers:
                              description: >-
                                List of log analyzer configuration objects for
                                this domain. Only analyzers that are enabled for
                                this user on the system are shown.
                              example:
                                - enabled: 1
                                  enabled_by_user: 1
                                  name: awstats
                                - enabled: 0
                                  enabled_by_user: 0
                                  name: analog
                                - enabled: 0
                                  enabled_by_user: 1
                                  name: webalizer
                              items:
                                properties:
                                  enabled:
                                    description: >-
                                      Whether the analyzer is turned on or off
                                      for the domain.


                                      - `1` - the analyzer is enabled.

                                      - `0` - the analyzer is disabled.


                                      **Note:** This is the cumulative effect of
                                      the choices the server admin and user
                                      make.
                                    enum:
                                      - 1
                                      - 0
                                    type: integer
                                  enabled_by_user:
                                    description: >-
                                      Whether the analyzer is turned on or off
                                      for the domain specifically by this user.


                                      - `1` - the analyzer is enabled by the
                                      user.

                                      - `0` - the analyzer is disabled by the
                                      user.
                                    enum:
                                      - 1
                                      - 0
                                    type: integer
                                  name:
                                    description: >-
                                      Name of the analyzer.


                                      It must be one of the following:


                                      - `analog` - Analog weblog analyzer.

                                      - `awstats` - AWStats weblog analyzer.

                                      - `webalizer` - The Webalizer weblog
                                      analyzer.
                                    enum:
                                      - analog
                                      - awstats
                                      - webalizer
                                    type: string
                                type: object
                              type: array
                            domain:
                              description: The domain.
                              example: domain.com
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          analyzers:
                            description: System configruation for each analyzer.
                            example:
                              - available_for_user: 1
                                enabled_by_default: 0
                                name: analog
                              - available_for_user: 1
                                enabled_by_default: 1
                                name: awstats
                              - available_for_user: 1
                                enabled_by_default: 0
                                name: webalizer
                            items:
                              properties:
                                available_for_user:
                                  description: >-
                                    Whether the analyzer can be configured by
                                    this user.


                                    - `1` - the analyzer can be configured by
                                    this user.

                                    - `0` - the analyzer cannot be configured by
                                    this user.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                                enabled_by_default:
                                  description: >-
                                    Whether the analyzer is turned on or off by
                                    default for all users.


                                    - `1` - the analyzer is enabled for all
                                    users on the server.

                                    - `0` - the analyzer is disabled for all
                                    users on the server.
                                  enum:
                                    - 1
                                    - 0
                                  type: integer
                                name:
                                  description: >-
                                    Name of the analyzer.


                                    It must be one of the following:


                                    - `analog` - Analog weblog analyzer.

                                    - `awstats` - AWStats weblog analyzer.

                                    - `webalizer` - The Webalizer weblog
                                    analyzer.
                                  enum:
                                    - analog
                                    - awstats
                                    - webalizer
                                  type: string
                              type: object
                            type: array
                          locked:
                            description: >-
                              Whether the analyzer can be turned on or off for
                              the domain by the cPanel user.


                              - `1` - the analyzer cannot be managed by the
                              cPanel user. The reseller or `root` controls the
                              configuration.

                              - `0` - the analyzer can be managed by the cPanel
                              user.
                            enum:
                              - 1
                              - 0
                            type: integer
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Returns weblog analyzers' configuration
      tags:
        - StatsManager
        - Weblog Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              StatsManager \
              get_configuration
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/StatsManager/get_configuration
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file StatsManager_get_configuration.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/StatsManager_get_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/StatsManager/,
                q/get_configuration/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file StatsManager_get_configuration.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/StatsManager_get_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'StatsManager',
                'get_configuration'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 90
  /StatsManager/save_configuration:
    post:
      description: >-
        This function saves the users choice about which web log anayzers are
        enabled for each domain on their cPanel users account.

        If the log anayzers are controlled by the reseller or root account, the
        user cannot manage which log analyzers are enabled or disabled.


        **Important:**


        When you disable the WebServer role the system disables this function.
        For more information, read our How to Use Server Profiles documentation.
      operationId: stats_manager_save_configuration
      requestBody:
        content:
          application/json:
            schema:
              properties:
                changes:
                  items:
                    properties:
                      analyzers:
                        description: List of log analyzer configuration objects.
                        example:
                          - enabled: 1
                            name: awstats
                          - enabled: 0
                            name: analog
                          - enabled: 0
                            name: webalizer
                        items:
                          properties:
                            enabled:
                              description: >-
                                Whether the analyzer is turned on or off for the
                                domain.


                                - `1` - the analyzer is enabled.

                                - `0` - the analyzer is disabled.
                              enum:
                                - 1
                                - 0
                              type: integer
                            name:
                              description: |-
                                Name of the analyzer.

                                It must be one of the following:

                                - `analog` - Analog weblog analyzer.
                                - `awstats` - AWStats weblog analyzer.
                                - `webalizer` - The Webalizer weblog analyzer.
                              enum:
                                - analog
                                - awstats
                                - webalizer
                              type: string
                          type: object
                        type: array
                      domain:
                        description: Domain you want to configure.
                        example: domain.com
                        type: string
                    type: object
                  type: array
              type: object
        description: List of domains and what web log analyzers to change.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: save_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: StatsManager
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          A list of domains and the status of each of the web
                          log analyzers available in cPanel for that domain.
                        items:
                          properties:
                            analyzers:
                              description: >-
                                List of log analyzer configuration objects for
                                this domain
                              example:
                                - available: 1
                                  enabled: 1
                                  locked: 0
                                  name: awstats
                                - available: 1
                                  enabled: 0
                                  locked: 0
                                  name: analog
                                - available: 0
                                  enabled: 0
                                  locked: 0
                                  name: webalizer
                              items:
                                properties:
                                  available:
                                    description: >-
                                      Whether the analyzer is turned on or off
                                      for the whole server.


                                      - `1` - the analyzer is enabled on the
                                      server.

                                      - `0` - the analyzer is disabled on the
                                      server.
                                    enum:
                                      - 1
                                      - 0
                                    type: integer
                                  enabled:
                                    description: >-
                                      Whether the analyzer is turned on or off
                                      for the domain.


                                      - `1` - the analyzer is enabled.

                                      - `0` - the analyzer is disabled.
                                    enum:
                                      - 1
                                      - 0
                                    type: integer
                                  locked:
                                    description: >-
                                      Whether the analyzer can be turned on or
                                      off for the domain by the cPanel user.


                                      - `1` - the analyzer can be managed by the
                                      cPanel user.

                                      - `0` - the analyzer cannot be managed by
                                      the cPanel user. The reseller or `root`
                                      controls the configuration.
                                    enum:
                                      - 1
                                      - 0
                                    type: integer
                                  name:
                                    description: >-
                                      Name of the analyzer.


                                      It must be one of the following:


                                      - `analog` - Analog weblog analyzer.

                                      - `awstats` - AWStats weblog analyzer.

                                      - `webalizer` - The Webalizer weblog
                                      analyzer.
                                    enum:
                                      - analog
                                      - awstats
                                      - webalizer
                                    type: string
                                type: object
                              type: array
                            domain:
                              description: The domain.
                              example: user
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Save current user's weblog analyzers configuration
      tags:
        - StatsManager
        - Weblog Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            echo
            '{"changes":[{"analyzers":[{"enabled":"1","name":"awstats"},{"enabled":"0","name":"analog"},{"enabled":"0","name":"webalizer"}],"domain":"domain.com"}]}'
            | \

            uapi --input=json --output=jsonpretty \
              --user=username \
              StatsManager \
              save_configuration
        - label: HTTP Request (Wire Format)
          lang: HTTP
          source: >-
            POST /cpsess##########/execute/StatsManager/save_configuration
            HTTP/1.1

            Host: example.com:2083

            Cookie: ###################################

            Content-Type: application/json

            Content-Length: 151


            {"changes":[{"analyzers":[{"enabled":"1","name":"awstats"},{"enabled":"0","name":"analog"},{"enabled":"0","name":"webalizer"}],"domain":"domain.com"}]}
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 90
  /SubDomain/addsubdomain:
    get:
      description: >-
        This function creates a subdomain.


        **Important:**


        When you disable the [Web Server
        role](https://go.cpanel.net/serverroles#roles), the system **disables**
        this function.
      operationId: addsubdomain
      parameters:
        - description: The subdomain name to create.
          in: query
          name: domain
          required: true
          schema:
            example: subdomain
            type: string
        - description: >-
            The domain on which to create the new subdomain.  The domain
            **must** already exist on the cPanel account.
          in: query
          name: rootdomain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            Whether to use a canonical name (CNAME) in the [Apache®
            configuration for self-referential
            URLs](https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname).

            * `1` - Use the CNAME.

            * `0` - Do **not** use the CNAME.
          in: query
          name: canoff
          required: false
          schema:
            default: 1
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The subdomain's document `root` within the home directory, given as
            a valid directory path relative to the user's home directory.


            This value defaults to the user's home directory `/public_html/`
            path.


            **Note:**


            If the *Restrict document roots to public_html* value is set to
            *Off* in WHM's [*Tweak
            Settings*](https://go.cpanel.net/whmdocsTweakSettings#domains)
            interface (*WHM >> Home >> Server Configuration >> Tweak Settings*),
            this parameter defaults to the `/username/` path. For example, the
            `username` user's subdomain `example` would default to the
            `/home/username/example` path.
          in: query
          name: dir
          required: false
          schema:
            example: /public_html/directory_name
            format: path
            type: string
        - description: |-
            Whether to remove the dot (`.`) characters from the `domain` value.
            * `1` - Remove dots from the domain.
            * `0` - Do **not** remove dots from the domain.
          in: query
          name: disallowdot
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: addsubdomain
                    type: string
                  module:
                    description: The name of the module called.
                    example: SubDomain
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Create subdomain
      tags:
        - SubDomain
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SubDomain \
              addsubdomain \
              domain='subdomain' \
              rootdomain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SubDomain/addsubdomain?domain=subdomain&rootdomain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SubDomain_addsubdomain.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme_name>/

            #    to
            .../frontend/<theme_name>/api_examples/SubDomain_addsubdomain.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SubDomain/,
                q/addsubdomain/,
                {
                    'domain' => 'subdomain',
                    'rootdomain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme_name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SubDomain_addsubdomain.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme_name>/

            //    to
            .../frontend/<theme_name>/api_examples/SubDomain_addsubdomain.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SubDomain',
                'addsubdomain',
                array (
                    'domain' => 'subdomain',
                    'rootdomain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 70
  /Team/add_roles:
    get:
      description: |-
        This function adds roles to a team user.

        **Note:**

          This action may result in team users gaining access to team owner level privileges.
      operationId: add_roles
      parameters:
        - description: >-
            The role or roles to add to the team user. Current roles include
            admin, database, email, web.
          in: query
          name: role
          required: true
          schema:
            example: database
            type: string
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_roles
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add roles to a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              add_roles \
              user='teamuser' \
              role='database'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/add_roles?user=teamuser&role=database
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_add_roles.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_add_roles.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/add_roles/,
                {
                    'user' => 'teamuser',
                    'role' => 'database',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_add_roles.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_add_roles.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'add_roles',
                array (
                    'user' => 'teamuser',
                    'role' => 'database',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Team/add_team_user:
    get:
      description: |-
        This function creates and adds a new team user.

        **Note:**

          This action may result in team users gaining access to team owner level privileges.
      operationId: add_team_user
      parameters:
        - description: The contact email for the new team user.
          in: query
          name: email1
          required: true
          schema:
            example: teamuser@example.com
            type: string
        - description: The username of the team user. Follows cPanel standards.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
        - description: "Send an email to the team user that allows them to set their own password.\n* `1` - Enabled.\n\n**Note:**\n\n * You\_must\_pass either the `password` or `activation_email` parameter."
          in: query
          name: activation_email
          required: false
          schema:
            example: 1
            type: integer
        - description: The secondary email for the new team user.
          in: query
          name: email2
          required: false
          schema:
            example: teamuser-backup@example.com
            type: string
        - description: >-
            The epoch time on which the team user account expires, or the offset
            from the current time, in days. Integers are treated as Unix Epoch
            Time unless followed by 'days'.
          examples:
            offset:
              value: 120days
            unix-timestamp:
              value: 1649948169
          in: query
          name: expire_date
          required: false
          schema:
            oneOf:
              - type: integer
              - type: string
        - description: The reason for expiration.
          in: query
          name: expire_reason
          required: false
          schema:
            example: teamUser gave a two week notice.
            type: string
        - description: >-
            Notes about the new team user. This field should not contain private
            information. Maximum of 100 characters.
          in: query
          name: notes
          required: false
          schema:
            example: This is a note about teamuser
            type: string
        - description: "The password to set for the new team user.\n\n**Note:**\n\n * You\_must\_pass either the `password` or `activation_email` parameter."
          in: query
          name: password
          required: false
          schema:
            example: securepassword
            type: string
        - description: >-
            A comma-separated list of roles assigned to the new team user.
            Current roles include admin, database, email, web.
          in: query
          name: roles
          required: false
          schema:
            example: email,database
            type: string
        - description: >-
            Whether to create an email subaccount for the team user. A
            subaccount is always created for a team user, but it does not have
            any associated service subaccounts by default.


            * `1` - Create an email subaccount.

            * `0` - **Do Not** create an email subaccount.
          in: query
          name: services.email.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The maximum amount of disk space, in megabytes (MB), allocated to
            the team user's email account.


            * `0` or `unlimited` - The subaccount has unlimited disk space.


            This value defaults to the defined system value.


            **Note:**


            This value **cannot** be larger than the system's maximum email
            quota.
          in: query
          name: services.email.quota
          required: false
          schema:
            example: '500'
            type: string
        - description: >-
            Whether to create an FTP subaccount for the team user. A subaccount
            is always created for a team user, but it does not have any
            associated service subaccounts by default.


            * `1` - Create an FTP subaccount.

            * `0` - **Do Not** create an FTP subaccount.
          in: query
          name: services.ftp.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The team user's FTP home directory, relative to the cPanel account's
            home directory.


            **Note:**


            * This parameter is **required** if you enabled the
            `services.ftp.homedir` parameter.

            * The directory **must** exist.
          in: query
          name: services.ftp.homedir
          required: false
          schema:
            example: /Teamusername
            format: path
            type: string
        - description: >-
            Whether to create a Web Disk subaccount for the team user. A
            subaccount is always created for a team user, but it does not have
            any associated service subaccounts by default.


            * `1` - Create a Web Disk subaccount.

            * `0` - **Do Not** create a Web Disk subaccount.
          in: query
          name: services.webdisk.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            Whether to enable the Web Disk Digest Authentication.


            * `1` - Enabled.

            * `0` - Disabled.


            **Note:**


            * **Only** enable Digest Authentication for clients that require
            additional compatibility support on
              certain versions of Windows® operating systems. This compatibility support is **only** required on servers
              that use a self-signed certificate for the `cpsrvd` and `cpdavd` daemons.
            * We recommend that you do **not** use Digest Authentication.
          in: query
          name: services.webdisk.enabledigest
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The team user's Web Disk home directory, relative to the cPanel
            account's home directory.


            **Note:**


            This parameter is **required** if you enable the
            `services.webdisk.enabled` parameter.
          in: query
          name: services.webdisk.homedir
          required: false
          schema:
            example: /Teamusername
            format: path
            type: string
        - description: |-
            The team user's file permissions for its Web Disk home directory.

            * `ro` - Read-only permissions.
            * `rw` - Read and write permissions.

            **Note:**

             The `services.webdisk.homedir` parameter determines the team user's Web Disk home directory.
          in: query
          name: services.webdisk.perms
          required: false
          schema:
            default: rw
            example: rw
            type: string
        - description: |-
            Whether to set the directory's permissions to public or private.

            * `1` - Private (`0700`).
            * `0` - Public (`0755`).
          in: query
          name: services.webdisk.private
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: add_team_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The unix timestamp that represents when the team user
                          expires.
                        example: 1674575562
                        format: unix-timestamp
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Add a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              add_team_user \
              user='teamuser' \
              email1='teamuser@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/add_team_user?user=teamuser&email1=teamuser%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_add_team_user.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_add_team_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/add_team_user/,
                {
                    'user' => 'teamuser',
                    'email1' => 'teamuser@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_add_team_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_add_team_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'add_team_user',
                array (
                    'user' => 'teamuser',
                    'email1' => 'teamuser@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 104
  /Team/cancel_expire:
    get:
      description: This function stops a team user from expiring.
      operationId: cancel_expire
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamUser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: expire_team_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Stop a team user from expiring
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              cancel_expire \
              user='teamUser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/cancel_expire?user=teamUser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_cancel_expire.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_cancel_expire.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/cancel_expire/,
                {
                    'user' => 'teamUser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_cancel_expire.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_cancel_expire.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'cancel_expire',
                array (
                    'user' => 'teamUser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Team/edit_team_user:
    get:
      description: This function modifies a team user.
      operationId: edit_team_user
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamUser
            type: string
        - description: The role or roles to add to the team user.
          in: query
          name: add_role
          required: false
          schema:
            example: database
            type: string
        - description: The primary contact email address to set for the team user.
          in: query
          name: email1
          required: false
          schema:
            example: teamuser@example.com
            type: string
        - description: The secondary contact email address to set for the team user.
          in: query
          name: email2
          required: false
          schema:
            example: teamuser@example.com
            type: string
        - description: The reason for expiration.
          in: query
          name: expire_reason
          required: false
          schema:
            example: teamUser gave a two week notice.
            type: string
        - description: >-
            Notes about the new team user. This field should not contain private
            information.
          in: query
          name: notes
          required: false
          schema:
            example: This is a note about teamUser
            type: string
        - description: The password to set for the team user.
          in: query
          name: password
          required: false
          schema:
            example: securepassword
            type: string
        - description: The role or roles to remove from the team user.
          in: query
          name: remove_role
          required: false
          schema:
            example: database
            type: string
        - description: >-
            Whether to create or remove an email subaccount for the team user. A
            subaccount is always created for a team user, but it does not have
            any associated service subaccounts by default.


            * `1` - Create and associate an email subaccount.

            * `0` - Remove any associated email subaccounts.
          in: query
          name: services.email.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The maximum amount of disk space, in megabytes (MB), allocated to
            the team user's email account.


            * `0` or `unlimited` - The subaccount has unlimited disk space.


            This value defaults to the defined system value.


            **Note:**


            This value **cannot** be larger than the system's maximum email
            quota.
          in: query
          name: services.email.quota
          required: false
          schema:
            example: '500'
            type: string
        - description: >-
            Whether to create or remove an FTP subaccount for the team user. A
            subaccount is always created for a team user, but it does not have
            any associated service subaccounts by default.


            * `1` - Create and associate an FTP subaccount.

            * `0` - Remove any associated FTP subaccounts.
          in: query
          name: services.ftp.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The team user's FTP home directory, relative to the cPanel account's
            home directory.


            **Note:**


            * This parameter is **required** if you enabled the
            `services.ftp.homedir` parameter.

            * The directory **must** exist.
          in: query
          name: services.ftp.homedir
          required: false
          schema:
            example: /Teamusername
            format: path
            type: string
        - description: >-
            Whether to create or remove a Web Disk subaccount for the team user.
            A subaccount is always created for a team user, but it does not have
            any associated service subaccounts by default.


            * `1` - Create and associate a Web Disk subaccount.

            * `0` - Remove any associated Web Disk subaccounts.
          in: query
          name: services.webdisk.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            Whether to enable the Web Disk Digest Authentication.


            * `1` - Enabled.

            * `0` - Disabled.


            **Note:**


            * **Only** enable Digest Authentication for clients that require
            additional compatibility support on
              certain versions of Windows® operating systems. This compatibility support is **only** required on servers
              that use a self-signed certificate for the `cpsrvd` and `cpdavd` daemons.
            * We recommend that you do **not** use Digest Authentication.
          in: query
          name: services.webdisk.enabledigest
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The team user's Web Disk home directory, relative to the cPanel
            account's home directory.


            **Note:**


            This parameter is **required** if you enable the
            `services.webdisk.enabled` parameter.
          in: query
          name: services.webdisk.homedir
          required: false
          schema:
            example: /Teamusername
            format: path
            type: string
        - description: |-
            The team user's file permissions for its Web Disk home directory.

            * `ro` - Read-only permissions.
            * `rw` - Read and write permissions.

            **Note:**

             The `services.webdisk.homedir` parameter determines the team user's Web Disk home directory.
          in: query
          name: services.webdisk.perms
          required: false
          schema:
            default: rw
            example: rw
            type: string
        - description: |-
            Whether to set the directory's permissions to public or private.

            * `1` - Private (`0700`).
            * `0` - Public (`0755`).
          in: query
          name: services.webdisk.private
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The epoch time the team user account expires on or the offset in
            days.
          examples:
            offset:
              value: 120days
            unix-timestamp:
              value: 1649948169
          in: query
          name: set_expire
          required: false
          schema:
            oneOf:
              - type: integer
              - type: string
        - description: The role or roles to set for the team user.
          in: query
          name: set_role
          required: false
          schema:
            example: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: edit_team_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Edit a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              edit_team_user \
              user='teamUser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/edit_team_user?user=teamUser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_edit_team_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_edit_team_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/edit_team_user/,
                {
                    'user' => 'teamUser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_edit_team_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_edit_team_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'edit_team_user',
                array (
                    'user' => 'teamUser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Team/get_team_users_with_roles_count:
    get:
      description: >-
        This function returns the current and maximum number of team users with
        roles.
      operationId: get_team_users_with_roles_count
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_team_users_with_roles_count
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          max:
                            description: |-
                              Maximum number of team users with roles.

                              **Note:**

                              This value is stored in the package.
                            example: 7
                            type: integer
                          used:
                            description: The current number of team users with roles.
                            example: 2
                            type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success.

                          - `0` - Failed: Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Get number of team users with roles
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              get_team_users_with_roles_count
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/get_team_users_with_roles_count
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_get_team_users_with_roles_count.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_get_team_users_with_roles_count.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/get_team_users_with_roles_count/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_get_team_users_with_roles_count.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_get_team_users_with_roles_count.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'get_team_users_with_roles_count'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 118
  /Team/list_team:
    get:
      description: |-
        This function lists the team users connected to a cPanel account.
        This list is given in an array by default, but can be given in a hash.
      operationId: list_team
      parameters:
        - description: The format in which the team data is listed.
          in: query
          name: format
          required: false
          schema:
            example: array
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_team
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        oneOf:
                          - $ref: '#/components/schemas/TeamArray'
                          - $ref: '#/components/schemas/TeamHash'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: List Team Users
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              list_team
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/list_team
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_list_team.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_list_team.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/list_team/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_list_team.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_list_team.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'list_team'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 104
  /Team/password_reset_request:
    get:
      description: >-
        This function enables a team user to reset the password by sending a
        password reset request link.
      operationId: password_reset_request
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: password_reset_request
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Sends a password reset request link to team user.
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              password_reset_request \
              user='teamuser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/password_reset_request?user=teamuser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_password_reset_request.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_password_reset_request.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/password_reset_request/,
                {
                    'user' => 'teamuser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_password_reset_request.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_password_reset_request.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'password_reset_request',
                array (
                    'user' => 'teamuser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Team/reinstate_team_user:
    get:
      description: >-
        This function reinstates a team user by removing any suspended or
        expired statuses. The reason field is also cleared.
      operationId: reinstate_team_user
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamUser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: reinstate_team_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Reinstate a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              reinstate_team_user \
              user='teamUser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/reinstate_team_user?user=teamUser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_reinstate_team_user.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_reinstate_team_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/reinstate_team_user/,
                {
                    'user' => 'teamUser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_reinstate_team_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_reinstate_team_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'reinstate_team_user',
                array (
                    'user' => 'teamUser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Team/remove_roles:
    get:
      description: This function removes roles from a team user.
      operationId: remove_roles
      parameters:
        - description: The role or roles to remove from the team user.
          in: query
          name: role
          required: true
          schema:
            example: database
            type: string
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_roles
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove roles from a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              remove_roles \
              user='teamuser' \
              role='database'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/remove_roles?user=teamuser&role=database
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_remove_roles.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_remove_roles.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/remove_roles/,
                {
                    'user' => 'teamuser',
                    'role' => 'database',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_remove_roles.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_remove_roles.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'remove_roles',
                array (
                    'user' => 'teamuser',
                    'role' => 'database',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Team/remove_team_user:
    get:
      description: This function removes a team user.
      operationId: remove_team_user
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_team_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              remove_team_user \
              user='teamuser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/remove_team_user?user=teamuser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_remove_team_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_remove_team_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/remove_team_user/,
                {
                    'user' => 'teamuser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_remove_team_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_remove_team_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'remove_team_user',
                array (
                    'user' => 'teamuser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Team/set_contact_email:
    get:
      description: This function sets or changes primary and secondary email addresses.
      operationId: set_team_user_contact_email
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamUser
            type: string
        - description: The primary contact email address to set for the team user.
          in: query
          name: email1
          required: false
          schema:
            example: email1@example.com
            type: string
        - description: The secondary contact email address to set for the team user.
          in: query
          name: email2
          required: false
          schema:
            example: email2@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_contact_email
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Set a contact email address for a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              set_contact_email \
              user='teamUser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/set_contact_email?user=teamUser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_set_contact_email.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_set_contact_email.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/set_contact_email/,
                {
                    'user' => 'teamUser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_set_contact_email.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_set_contact_email.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'set_contact_email',
                array (
                    'user' => 'teamUser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Team/set_expire:
    get:
      description: >-
        This function expires a team user after a specified amount of time.


        If the team user already has an expire date set, it's replaced with a
        new date and reason.
      operationId: set_expire
      parameters:
        - description: >-
            The epoch time on which the team user account expires, or the offset
            from the current time, in days. Integers are treated as Unix Epoch
            Time unless followed by 'days'.
          examples:
            offset:
              value: 120days
            unix-timestamp:
              value: 1649948169
          in: query
          name: date
          required: true
          schema:
            oneOf:
              - type: integer
              - type: string
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamUser
            type: string
        - description: The reason for expiration.
          in: query
          name: reason
          required: false
          schema:
            example: teamUser gave a two week notice.
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_expire
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The unix timestamp that represents when the team user
                          expires.
                        type: integer
                        format: unix-timestamp
                        example: 1674575562
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Set a team user to expire
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              set_expire \
              user='teamUser' \
              date='120days'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/set_expire?user=teamUser&date=120days
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_set_expire.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_set_expire.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/set_expire/,
                {
                    'user' => 'teamUser',
                    'date' => '120days',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_set_expire.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_set_expire.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'set_expire',
                array (
                    'user' => 'teamUser',
                    'date' => '120days',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Team/set_locale:
    get:
      description: This function sets locale for a team user.
      operationId: Team::set_locale
      parameters:
        - description: The new locale for the team user.
          in: query
          name: locale
          required: true
          schema:
            example: es_es
            type: string
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_locale
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Set locale for a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              set_locale \
              user='teamuser' \
              locale='es_es'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/set_locale?user=teamuser&locale=es_es
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_set_locale.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_set_locale.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/set_locale/,
                {
                    'user' => 'teamuser',
                    'locale' => 'es_es',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_set_locale.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_set_locale.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'set_locale',
                array (
                    'user' => 'teamuser',
                    'locale' => 'es_es',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Team/set_notes:
    get:
      description: This function replaces the current notes field with new text.
      operationId: set_team_user_notes
      parameters:
        - description: The content of the notes field.
          in: query
          name: notes
          required: true
          schema:
            example: teamUser is a good employee
            type: string
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamUser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_notes
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Set notes for a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              set_notes \
              user='teamUser' \
              notes='teamUser '
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/set_notes?user=teamUser&notes=teamUser%20
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_set_notes.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_set_notes.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/set_notes/,
                {
                    'user' => 'teamUser',
                    'notes' => 'teamUser ',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_set_notes.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_set_notes.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'set_notes',
                array (
                    'user' => 'teamUser',
                    'notes' => 'teamUser ',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 110
  /Team/set_password:
    get:
      description: This function replaces the current password with a new one.
      operationId: set_team_user_password
      parameters:
        - description: The password to set for the team user.
          in: query
          name: password
          required: true
          schema:
            example: securepassword
            type: string
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Set password for a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              set_password \
              user='teamuser' \
              password='securepassword'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/set_password?user=teamuser&password=securepassword
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_set_password.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_set_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/set_password/,
                {
                    'user' => 'teamuser',
                    'password' => 'securepassword',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_set_password.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_set_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'set_password',
                array (
                    'user' => 'teamuser',
                    'password' => 'securepassword',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 106
  /Team/set_roles:
    get:
      description: |-
        This function sets roles for a team user.

        **Note:**

          This action may result in team users gaining access to team owner level privileges.
      operationId: set_roles
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
        - description: >-
            The role or roles to set for the team user. Current roles include
            admin, database, email, web.
          in: query
          name: role
          required: false
          schema:
            example: database
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_roles
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - `1` - Success

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Set roles for a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              set_roles \
              user='teamuser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/set_roles?user=teamuser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            # jupiter.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_set_roles.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_set_roles.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/set_roles/,
                {
                    'user' => 'teamuser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account, where
            theme-name represents

            // jupiter.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_set_roles.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_set_roles.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'set_roles',
                array (
                    'user' => 'teamuser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Team/suspend_team_user:
    get:
      description: This function immediately suspends a team user.
      operationId: suspend_team_user
      parameters:
        - description: The username of the team user.
          in: query
          name: user
          required: true
          schema:
            example: teamuser
            type: string
        - description: The reason for suspension.
          in: query
          name: reason
          required: false
          schema:
            example: teamuser is on vacation
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: suspend_team_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: Team
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Suspend a team user
      tags:
        - Team Users
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Team \
              suspend_team_user \
              user='teamuser'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Team/suspend_team_user?user=teamuser
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Team_suspend_team_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Team_suspend_team_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Team/,
                q/suspend_team_user/,
                {
                    'user' => 'teamuser',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Team_suspend_team_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Team_suspend_team_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Team',
                'suspend_team_user',
                array (
                    'user' => 'teamuser',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /TeamRoles/list_feature_descriptions:
    get:
      description: >-
        This function gives a list of all team roles and their included
        features.
      operationId: list_feature_descriptions
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_feature_descriptions
                    type: string
                  module:
                    description: The name of the module called.
                    example: TeamRoles
                    type: string
                  result:
                    properties:
                      data:
                        $ref: '#/components/schemas/FeatureDescriptions'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: List all role feature descriptions
      tags:
        - Team Roles
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              TeamRoles \
              list_feature_descriptions
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/TeamRoles/list_feature_descriptions
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file TeamRoles_list_feature_descriptions.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/TeamRoles_list_feature_descriptions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/TeamRoles/,
                q/list_feature_descriptions/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file TeamRoles_list_feature_descriptions.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/TeamRoles_list_feature_descriptions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'TeamRoles',
                'list_feature_descriptions'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 108
  /Themes/get_theme_base:
    get:
      deprecated: true
      description: This function is deprecated and does not return useful output.
      operationId: get_theme_base
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_theme_base
                    type: string
                  module:
                    description: The name of the module called.
                    example: Themes
                    type: string
                  result:
                    properties:
                      data:
                        description: "The cPanel account's base theme. The function returns **only** one of the following strings:\n* `jupiter`\n* `unknown` —\_The function returns this value when it cannot determine the base theme that\nyou modified to create the custom theme."
                        enum:
                          - jupiter
                          - unknown
                        example: jupiter
                        type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return current theme
      tags:
        - Themes
        - Theme Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Themes \
              get_theme_base
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Themes/get_theme_base
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Themes_get_theme_base.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Themes_get_theme_base.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Themes/,
                q/get_theme_base/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Themes_get_theme_base.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Themes_get_theme_base.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Themes',
                'get_theme_base'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /Themes/list:
    get:
      description: |-
        This function lists available themes.

        **Note:**

          The `/usr/local/cpanel/scripts/modify_accounts` script allows you to modify the style and theme for many or all accounts on the server. For more information, read our [The modify_accounts Script](https://go.cpanel.net/modifyaccounts) documentation.
      operationId: Themes::list
      parameters:
        - description: |-
            Whether to list the account's mail themes.
            * `1` — List mail themes.
            * `0` — Do **not** list mail themes.
          in: query
          name: show_mail_themes
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list
                    type: string
                  module:
                    description: The name of the module called.
                    example: Themes
                    type: string
                  result:
                    properties:
                      data:
                        description: An array that contains the account's themes.
                        items:
                          example: jupiter
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return available themes
      tags:
        - Themes
        - Theme Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Themes \
              list
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Themes/list
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Themes_list.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Themes_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Themes/,
                q/list/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Themes_list.live.php and put this code into that
            file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to .../frontend/<theme-name>/api_examples/Themes_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Themes',
                'list'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Themes/update:
    get:
      description: |-
        This function applies a new theme to the cPanel interface.

        **Note:**

          The `/usr/local/cpanel/scripts/modify_accounts` script allows you to modify the theme for many or all accounts on the server. For more information, read our [The modify_accounts Script](https://go.cpanel.net/modifyaccounts) documentation.
      operationId: Themes::update
      parameters:
        - description: The theme name.
          in: query
          name: theme
          required: true
          schema:
            example: jupiter
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update
                    type: string
                  module:
                    description: The name of the module called.
                    example: Themes
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          Whether the theme changed.


                          * `1` — The theme changed.

                          * `0` — The theme did **not** change, or the function
                          failed.


                          **Note:**


                          If the function fails, check the `errors` field for
                          more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update current theme
      tags:
        - Themes
        - Theme Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Themes \
              update \
              theme='jupiter'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Themes/update?theme=jupiter
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Themes_update.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Themes_update.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Themes/,
                q/update/,
                {
                    'theme' => 'jupiter',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Themes_update.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Themes_update.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Themes',
                'update',
                array (
                    'theme' => 'jupiter',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /Tokens/create_full_access:
    get:
      description: >-
        This function creates a new API token with full access to all of a
        cPanel account's features.


        **Note:**


        The token **only** grants access to the features that the account has
        access to. For example,

        if you disable the [*File
        Manager*](https://go.cpanel.net/cpaneldocsFileManager) feature, the

        token can't access it.
      operationId: create_full_access
      parameters:
        - description: >-
            The API token's name.


            **Note:**


            The name may **only** contain alphanumeric characters, dashes (`-`),
            and underscores (`_`).
          in: query
          name: name
          required: true
          schema:
            example: example
            maxLength: 50
            type: string
        - description: "The API token's expiration time.\n\n**Important:**\n\n* When an API token expires the system does\_**not** delete it. You **must** manually delete expired API tokens.\n* If you do not use this parameter, the API token will **not** expire."
          in: query
          name: expires_at
          required: false
          schema:
            example: 1609372800
            format: unix_timestamp
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_full_access
                    type: string
                  module:
                    description: The name of the module called.
                    example: Tokens
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          create_time:
                            description: The API token's creation date and time.
                            example: 1549467298
                            format: unix_timestamp
                            type: integer
                          token:
                            description: The generated API token.
                            example: JPQNSRU0DH448UJLGXH7KVJECC5QN9N9
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create cPanel API token
      tags:
        - Tokens
        - API Token Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Tokens \
              create_full_access \
              name='example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Tokens/create_full_access?name=example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Tokens_create_full_access.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Tokens_create_full_access.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Tokens/,
                q/create_full_access/,
                {
                    'name' => 'example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Tokens_create_full_access.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Tokens_create_full_access.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Tokens',
                'create_full_access',
                array (
                    'name' => 'example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /Tokens/list:
    get:
      description: This function returns a list of a cPanel account's API tokens.
      operationId: Tokens-list
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list
                    type: string
                  module:
                    description: The name of the module called.
                    example: Tokens
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing the account's API
                          tokens.
                        items:
                          properties:
                            create_time:
                              description: The API token's creation date and time.
                              example: 1549471343
                              format: unix_timestamp
                              type: integer
                            expires_at:
                              description: "The API token's expiration time.\n\n* null —\_The API token does **not** expire."
                              example: 1609372800
                              format: unix_timestamp
                              nullable: true
                              type: integer
                            features:
                              description: >-
                                The account features that the API token has
                                access to.


                                * An empty array — The API token has full
                                access.
                              example: []
                              items:
                                type: string
                              type: array
                            has_full_access:
                              description: >-
                                Whether the API token has full access to the
                                account's features.


                                * `1` — The API token has full access to the
                                account's features.

                                * `0` — The API token does **not** have full
                                access to the

                                account's features.
                              enum:
                                - 1
                                - 0
                              example: 1
                              type: integer
                            name:
                              description: The API token's name.
                              example: exampletoken
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel API tokens
      tags:
        - Tokens
        - API Token Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Tokens \
              list
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Tokens/list
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Tokens_list.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Tokens_list.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Tokens/,
                q/list/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Tokens_list.live.php and put this code into that
            file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to .../frontend/<theme-name>/api_examples/Tokens_list.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Tokens',
                'list'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /Tokens/rename:
    get:
      description: This function renames a cPanel account's existing API token.
      operationId: rename
      parameters:
        - description: The API token's name.
          in: query
          name: name
          required: true
          schema:
            example: example
            type: string
        - description: >-
            The new name for the API token.


            **Note:**


            The name may only contain alphanumeric characters, dashes (`-`), and
            underscores (`_`).
          in: query
          name: new_name
          required: true
          schema:
            example: newexample
            maxLength: 50
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: rename
                    type: string
                  module:
                    description: The name of the module called.
                    example: Tokens
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update cPanel API token's name
      tags:
        - Tokens
        - API Token Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Tokens \
              rename \
              name='example' \
              new_name='newexample'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Tokens/rename?name=example&new_name=newexample
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Tokens_rename.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Tokens_rename.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Tokens/,
                q/rename/,
                {
                    'name' => 'example',
                    'new_name' => 'newexample',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Tokens_rename.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Tokens_rename.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Tokens',
                'rename',
                array (
                    'name' => 'example',
                    'new_name' => 'newexample',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /Tokens/revoke:
    get:
      description: This function removes an API token from a cPanel account.
      operationId: revoke
      parameters:
        - description: The API token to remove.
          in: query
          name: name
          required: true
          schema:
            example: example
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: revoke
                    type: string
                  module:
                    description: The name of the module called.
                    example: Tokens
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the system removed the API token.


                          * `1` - The system removed the API token or the API
                          token doesn't exist.

                          * `0` - The system did **not** remove the API token.


                          **Note:**


                          The system returns the data value in the function's
                          metadata. This differs from our usual API return
                          format. For more information, read our [UAPI
                          Introduction](/cpanel/introduction/) documentation.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove cPanel API token
      tags:
        - Tokens
        - API Token Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Tokens \
              revoke \
              name='example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Tokens/revoke?name=example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Tokens_revoke.live.pl and put this code into that
            file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/Tokens_revoke.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Tokens/,
                q/revoke/,
                {
                    'name' => 'example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Tokens_revoke.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Tokens_revoke.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Tokens',
                'revoke',
                array (
                    'name' => 'example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 80
  /TwoFactorAuth/generate_user_configuration:
    get:
      description: >-
        This function generates an authentication code to enable configuration
        of two-factor authentication.
      operationId: generate_user_configuration
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: generate_user_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: TwoFactorAuth
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          otpauth_str:
                            description: >-
                              A one-time authentication URL to encode as the QR
                              code.
                            example: >-
                              otpauth://totp/Example%20cPanel%20L.L.C.:fakedomain?secret=S3I4WUY7MTHRMMWN&issuer=Example%20cPanel%20L.L.C.
                            type: string
                          secret:
                            description: >-
                              A generated code for use with two-factor
                              authentication.
                            example: S3I4WUY7MTHRMMWN
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create 2FA authentication code
      tags:
        - TwoFactorAuth
        - Two-Factor Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              TwoFactorAuth \
              generate_user_configuration
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/TwoFactorAuth/generate_user_configuration
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file TwoFactorAuth_generate_user_configuration.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_generate_user_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/TwoFactorAuth/,
                q/generate_user_configuration/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            TwoFactorAuth_generate_user_configuration.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_generate_user_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'TwoFactorAuth',
                'generate_user_configuration'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /TwoFactorAuth/get_team_user_configuration:
    get:
      description: >-
        This function retrieves a [team
        user's](https://go.cpanel.net/manage-team) configuration settings for
        two-factor authentication.
      operationId: get_team_user_configuration
      parameters:
        - description: >-
            The team user's username.


            **Note:**


            The username will always precede the cPanel account's primary
            domain.
          in: query
          name: team_user
          required: true
          schema:
            example: user@example.com
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_team_user_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: TwoFactorAuth
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          is_enabled:
                            description: >-
                              Whether two-factor authentication is enabled for
                              the team user.

                              * `1` - Enabled.

                              * `0` - Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          issuer:
                            description: The authentication code issuer's name.
                            example: Example WebPros International, LLC
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return team user 2FA config
      tags:
        - TwoFactorAuth
        - Two-Factor Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              TwoFactorAuth \
              get_team_user_configuration \
              team_user=teamuser
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/TwoFactorAuth/get_team_user_configuration
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file TwoFactorAuth_get_team_user_configuration.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_get_team_user_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/TwoFactorAuth/,
                q/get_team_user_configuration/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            TwoFactorAuth_get_team_user_configuration.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_get_team_user_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'TwoFactorAuth',
                'get_team_user_configuration'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /TwoFactorAuth/get_user_configuration:
    get:
      description: >-
        This function retrieves the cPanel account user's configuration settings
        for two-factor authentication.
      operationId: get_user_configuration
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_user_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: TwoFactorAuth
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          is_enabled:
                            description: >-
                              Whether two-factor authentication is enabled for
                              the account.

                              * `1` - Enabled.

                              * `0` - Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          issuer:
                            description: The authentication code issuer's name.
                            example: Example WebPros International, LLC
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account 2FA config
      tags:
        - TwoFactorAuth
        - Two-Factor Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              TwoFactorAuth \
              get_user_configuration
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/TwoFactorAuth/get_user_configuration
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file TwoFactorAuth_get_user_configuration.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_get_user_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/TwoFactorAuth/,
                q/get_user_configuration/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file TwoFactorAuth_get_user_configuration.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_get_user_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'TwoFactorAuth',
                'get_user_configuration'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /TwoFactorAuth/remove_user_configuration:
    get:
      description: >-
        This function removes the user from the two-factor authentication
        `userdata` file.
      operationId: remove_user_configuration
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: remove_user_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: TwoFactorAuth
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          tfa_removed:
                            description: >-
                              Whether the system removed the user from the
                              two-factor authentication `userdata` file.

                              * `1` - Removed.


                              **Note:**


                              If a removal fails, the system sends a failure
                              response with the reason in the metadata.
                            enum:
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove 2FA config
      tags:
        - TwoFactorAuth
        - Two-Factor Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              TwoFactorAuth \
              remove_user_configuration
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/TwoFactorAuth/remove_user_configuration
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file TwoFactorAuth_remove_user_configuration.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_remove_user_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/TwoFactorAuth/,
                q/remove_user_configuration/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file TwoFactorAuth_remove_user_configuration.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_remove_user_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'TwoFactorAuth',
                'remove_user_configuration'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /TwoFactorAuth/set_user_configuration:
    get:
      description: >-
        This function configures the two-factor authentication settings for an
        account.
      operationId: set_user_configuration
      parameters:
        - description: >-
            The 16-character string that UAPI's
            `TwoFactorAuth::generate_user_configuration` function generates.
          in: query
          name: secret
          required: true
          schema:
            example: JBSWY3DPEHPK3PXP
            maxLength: 16
            type: string
        - description: >-
            The six-digit security code that the time-based one-time password
            (TOTP) authentication app generates.
          in: query
          name: tfa_token
          required: true
          schema:
            example: 528112
            maxLength: 6
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_user_configuration
                    type: string
                  module:
                    description: The name of the module called.
                    example: TwoFactorAuth
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          tfa_configured:
                            description: |-
                              Whether two-factor authentication is enabled.
                              * `1` - Enabled.
                              * `1` - Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Save 2FA config
      tags:
        - TwoFactorAuth
        - Two-Factor Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              TwoFactorAuth \
              set_user_configuration \
              secret='JBSWY3DPEHPK3PXP' \
              tfa_token='528112'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/TwoFactorAuth/set_user_configuration?secret=JBSWY3DPEHPK3PXP&tfa_token=528112
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file TwoFactorAuth_set_user_configuration.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_set_user_configuration.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/TwoFactorAuth/,
                q/set_user_configuration/,
                {
                    'secret' => 'JBSWY3DPEHPK3PXP',
                    'tfa_token' => '528112',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file TwoFactorAuth_set_user_configuration.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/TwoFactorAuth_set_user_configuration.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'TwoFactorAuth',
                'set_user_configuration',
                array (
                    'secret' => 'JBSWY3DPEHPK3PXP',
                    'tfa_token' => '528112',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserData/get_scoped_userdata:
    get:
      description: This function returns all userdata key/value pairs for a given scope.
      operationId: get_scoped_userdata
      parameters:
        - description: The scope name whose userdata you wish to retrieve.
          in: query
          name: scope
          required: true
          schema:
            example: example_scope
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_scoped_userdata
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserData
                    type: string
                  result:
                    properties:
                      data:
                        description: The requested scoped userdata mapping.
                        example:
                          theme: dark
                          items_per_page: '50'
                          show_help_tour: '0'
                        type: object
                        additionalProperties:
                          description: A stored value associated with a key in the scope.
                          type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return scoped userdata mapping
      tags:
        - UserData
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
            --user=username \
            UserData \
            get_scoped_userdata \
            scope=ui_prefs
        - label: URL
          lang: HTTP
          source: >
            https://hostname.example.com:2083/cpsess##########/execute/UserData/get_scoped_userdata?scope=ui_prefs
        - label: LiveAPI Perl
          lang: Perl
          source: |
            use strict;
            use Cpanel::LiveAPI ();
            my $cpanel = Cpanel::LiveAPI->new();
            print "Content-type: text/plain\r\n\r\n";
            my $response = $cpanel->uapi(
                q/UserData/,
                q/get_scoped_userdata/,
                q/scope=ui_prefs/,
            );
            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                print to_json($data);
            }
            else {
                print to_json($response->{cpanelresult}{result}{errors});
            }
            $cpanel->end();
            sub to_json { require JSON; JSON->new->pretty->encode($_[0]) }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            require_once "/usr/local/cpanel/php/cpanel.php";

            header('Content-Type: text/plain');

            $cpanel = new CPANEL();

            $response = $cpanel->uapi('UserData', 'get_scoped_userdata',
            array('scope' => 'ui_prefs'));

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                print json_encode($data, JSON_PRETTY_PRINT);
            } else {
                print json_encode($response['cpanelresult']['result']['errors'], JSON_PRETTY_PRINT);
            }

            $cpanel->end();
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: '11.32'
  /UserData/set_scoped_userdata:
    get:
      description: >-
        This function sets (creates or updates) a userdata key/value pair within
        a specified scope and returns the full updated mapping for that scope.
      operationId: set_scoped_userdata
      parameters:
        - description: The scope name to modify.
          in: query
          name: scope
          required: true
          schema:
            type: string
            example: example_scope
        - description: >-
            A json string to save to the specified scope.


            **Note:** The "json" argument cannot be used with the "key" or
            "value" arguments.
          in: query
          name: json
          required: false
          schema:
            type: string
            example: '{"theme":"dark"}'
        - description: >-
            The userdata key to set.


            **Note:** The "json" argument cannot be used with the "key" or
            "value" arguments.
          in: query
          name: key
          required: false
          schema:
            type: string
            example: theme
        - description: >-
            The value to assign to the key.


            **Note:** The "json" argument cannot be used with the "key" or
            "value" arguments.
          in: query
          name: value
          required: false
          schema:
            type: string
            example: dark
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_scoped_userdata
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserData
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          The updated scoped userdata mapping after the
                          key/value was set.
                        example:
                          theme: dark
                          items_per_page: '50'
                          show_help_tour: '0'
                        type: object
                        additionalProperties:
                          description: A stored value associated with a key in the scope.
                          type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Set scoped userdata key/value
      tags:
        - UserData
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
            --user=username \
            UserData \
            set_scoped_userdata \
            scope=ui_prefs \
            key=theme \
            value=dark
        - label: URL
          lang: HTTP
          source: >
            https://hostname.example.com:2083/cpsess##########/execute/UserData/set_scoped_userdata?scope=ui_prefs&key=theme&value=dark
        - label: LiveAPI Perl
          lang: Perl
          source: |
            use strict;
            use Cpanel::LiveAPI ();
            my $cpanel = Cpanel::LiveAPI->new();
            print "Content-type: text/plain\r\n\r\n";
            my $response = $cpanel->uapi(
                q/UserData/,
                q/set_scoped_userdata/,
                q/scope=ui_prefs/,
                q/key=theme/,
                q/value=dark/,
            );
            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                print to_json($data);
            }
            else {
                print to_json($response->{cpanelresult}{result}{errors});
            }
            $cpanel->end();
            sub to_json { require JSON; JSON->new->pretty->encode($_[0]) }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            require_once "/usr/local/cpanel/php/cpanel.php";

            header('Content-Type: text/plain');

            $cpanel = new CPANEL();

            $response = $cpanel->uapi('UserData', 'set_scoped_userdata',
            array('scope' => 'ui_prefs', 'key' => 'theme', 'value' => 'dark'));

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                print json_encode($data, JSON_PRETTY_PRINT);
            } else {
                print json_encode($response['cpanelresult']['result']['errors'], JSON_PRETTY_PRINT);
            }

            $cpanel->end();
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: '11.32'
  /UserManager/change_password:
    get:
      description: This function updates the cPanel account's password.
      operationId: change_password
      parameters:
        - description: The new password.
          in: query
          name: newpass
          required: true
          schema:
            example: MyNewPassw0rd!
            format: password
            type: string
        - description: The current password.
          in: query
          name: oldpass
          required: true
          schema:
            example: ThisWasMyPassword!
            format: password
            type: string
        - description: |-
            Whether to update the cPanel account's MySQL password.
            * `1` - Update MySQL password.
            * `0` - Do not update MySQL passowrd.
          in: query
          name: enablemysql
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: change_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update cPanel account password
      tags:
        - UserManager
        - Account Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              change_password \
              oldpass='MyPreviousPassword' \
              newpass='MyUpdatedPassword'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/change_password?oldpass=12346=newpass=ThisIs4It!
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_change_password.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_change_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/change_password/,
                {
                    'oldpass' => 'PreviousPassword',
                    'newpass' => 'B3tt3rP4ssw0rd!',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_change_password.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_change_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'change_password',
                array (
                    'oldpass' => 'PreviousPassword',
                    'newpass' => 'B3tt3rP4ssw0rd!',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 116
  /UserManager/check_account_conflicts:
    get:
      description: >-
        This function lists the other Subaccounts or services accounts that
        conflict

        with the specified username.


        **Note:**


        If the function returns more than one account, it will return some
        values

        multiple times within the return arrays.
      operationId: check_account_conflicts
      parameters:
        - description: The Subaccount's username and domain name.
          in: query
          name: full_username
          required: true
          schema:
            example: username@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: check_account_conflicts
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          accounts:
                            description: >-
                              An object containing the service accounts that
                              match the queried `full_username` parameter.
                            properties:
                              alternate_email:
                                description: >-
                                  An alternate email address for the
                                  Subaccount's user.
                                example: user@example.com
                                format: email
                                nullable: true
                                type: string
                              avatar_url:
                                description: >-
                                  The URL to the user's Subaccount profile image
                                  file.
                                example: https://img.example.com/avatars/example.jpg
                                format: url
                                nullable: true
                                type: string
                              can_delete:
                                description: "Whether the cPanel account user can delete the Subaccount.\n\n* `1` —\_Can delete.\n* `0` —\_**Cannot** delete."
                                enum:
                                  - 1
                                  - 0
                                example: 0
                                type: integer
                              can_set_password:
                                description: "Whether the cPanel account user can change the Subaccount's\npassword.\n\n* `1` —\_Can change the password.\n* `0` —\_**Cannot** change the password.\n\n**Note:**\n\nthe function returns `0` for Subaccounts that inherit their password\nfrom the cPanel account."
                                enum:
                                  - 1
                                  - 0
                                example: 1
                                type: integer
                              can_set_quota:
                                description: "Whether the cPanel account user can change the Subaccount's\ndisk usage quota.\n\n* `1` —\_Can change the Subaccount's disk usage quota.\n* `0` —\_**Cannot** change the Subaccount's disk useage quota."
                                enum:
                                  - 1
                                  - 0
                                example: 0
                                type: integer
                              dismissed:
                                description: "Whether the cPanel account user dismissed the merge prompt\nfor the service account.\n\n* `1` —\_Dismissed.\n* `0` —\_Did **not** dismiss.\n\n**Note:**\n\n**Only** service accounts return this value."
                                enum:
                                  - 1
                                  - 0
                                example: 1
                                type: integer
                              dismissed_merge_candidates:
                                description: >-
                                  A list of the service accounts that the user
                                  dismissed the merge

                                  prompt for.


                                  **Note:**


                                  * This array **always** returns empty.

                                  * We reserved this return for future use.
                                type: array
                              domain:
                                description: The Subaccount user's associated domain.
                                example: example.com
                                format: domain
                                type: string
                              full_username:
                                description: The Subaccount's username.
                                example: username@example.com
                                format: email
                                type: string
                              guid:
                                description: >-
                                  The Subaccount's system-assigned unique
                                  identifier.
                                example: >-
                                  N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
                                type: string
                              has_expired_invite:
                                description: "Whether the Subaccount owns an expired invitation.\n\n* `1` —\_Owns an expired invitation.\n* `0` —\_Does **not** own an expired invitation."
                                enum:
                                  - 1
                                  - 0
                                example: 0
                                type: integer
                              has_invite:
                                description: "Whether the Subaccount owns an active invitation.\n\n* `1` —\_Own an active invitation.\n* `0` —\_Does **not** own an active invitation."
                                enum:
                                  - 1
                                  - 0
                                example: 0
                                type: integer
                              has_siblings:
                                description: "Whether the service account shares the queried `full_username` value\nwith another service account.\n\n* `1` —\_Shares the service account.\n* `0` —\_Does **not** share the service account."
                                enum:
                                  - 1
                                  - 0
                                example: 0
                                type: integer
                              invite_expiration:
                                description: "The time at which the new Subaccount invitation will expire.\n\n* `null` —\_The account does **not** own an active invitation."
                                example: 1600162200
                                format: unix_timestamp
                                nullable: true
                                type: integer
                              issues:
                                description: >-
                                  An array of objects containing information
                                  about any issues or problems with the
                                  Subaccount.
                                items:
                                  properties:
                                    area:
                                      description: The affected section of cPanel & WHM.
                                      example: info
                                      type: string
                                    limit:
                                      description: >-
                                        The set megabyte (MB) quota limit for
                                        the affected Subaccount.
                                      example: 1500
                                      minimum: 1
                                      type: integer
                                    message:
                                      description: A description of the issue.
                                      example: Your account is over quota.
                                      type: string
                                    service:
                                      description: |-
                                        The affected service.

                                        * `email`
                                        * `ftp`
                                        * `webdisk`
                                      enum:
                                        - email
                                        - ftp
                                        - webdisk
                                      example: email
                                      type: string
                                    type:
                                      description: |-
                                        The type of issue.

                                        * `error`
                                        * `warning`
                                        * `info`
                                      enum:
                                        - error
                                        - warning
                                        - info
                                      example: info
                                      type: string
                                    used:
                                      description: >-
                                        The number of megabytes (MB) the account
                                        currently uses.
                                      example: 2000
                                      minimum: 1
                                      type: integer
                                  type: object
                                type: array
                              merge_candidates:
                                description: >-
                                  An array of objects containing the service
                                  accounts that the system could merge for this
                                  Subaccount.
                                items:
                                  properties:
                                    parent_type:
                                      description: "The type of account that could own the service account.\n\n* `sub` —\_A Subaccount.\n* `hypothetical` —\_A hypothetical Subaccount that does **not**\nyet exist, but that the user could create as part of a merge.\n* `null` —\_**Not** a merge candidate."
                                      enum:
                                        - sub
                                        - hypothetical
                                      nullable: true
                                      type: string
                                    phone_number:
                                      description: >-
                                        The Subaccount user's phone number, in

                                        [ITU-T-recommended
                                        E.164](https://en.wikipedia.org/wiki/E.164)

                                        format.
                                      example: '+15551234567'
                                      type: string
                                    real_name:
                                      description: >-
                                        The name of the Subaccount user, if
                                        provided.
                                      example: John Doe
                                      type: string
                                    services:
                                      description: >-
                                        Information about the Subaccount's
                                        access to email, FTP, and Web Disk.
                                      properties:
                                        email:
                                          description: >-
                                            Information that indicates the
                                            Subaccount's email status.
                                          properties:
                                            enabled:
                                              description: "Whether the Subaccount can access Webmail, POP, and\nIMAP services.\n\n* `1` —\_Has service access.\n* `0` —\_Does **not** have service access."
                                              enum:
                                                - 1
                                                - 0
                                              example: 1
                                              type: integer
                                            quota:
                                              description: "The Subaccount's email disk space quota, in megabytes (MB).\n\n* `0` —\_The account has an unlimited email disk space quota."
                                              example: 100
                                              maximum: 999999
                                              minimum: 0
                                              type: integer
                                          type: object
                                        ftp:
                                          description: >-
                                            Information about the Subaccount's FTP
                                            status.
                                          properties:
                                            enabled:
                                              description: "Whether the Subaccount can access FTP.\n\n* `1` —\_Has FTP service access.\n* `0` —\_Does **not** have FTP service access."
                                              enum:
                                                - 1
                                                - 0
                                              example: 0
                                              type: integer
                                            homedir:
                                              description: >-
                                                The Subaccount's FTP directory, relative
                                                to the cPanel account's home directory.
                                              example: /Subaccount
                                              type: string
                                            quota:
                                              description: >-
                                                The Subaccount's FTP maximum disk space
                                                quota, in

                                                megabytes (MB).


                                                * `0` — The account has an unlimited
                                                disk space quota.
                                              example: 100
                                              minimum: 0
                                              type: integer
                                          type: object
                                        webdisk:
                                          description: >-
                                            Information about the Subaccount's Web
                                            Disk status.
                                          properties:
                                            enabled:
                                              description: "Whether the Subaccount can access Web Disk.\n\n* `1` —\_Has Web Disk service access.\n* `0` —\_Does **not** have Web Disk service access."
                                              enum:
                                                - 1
                                                - 0
                                              example: 0
                                              type: integer
                                            homedir:
                                              description: >-
                                                The Subaccount's Web Disk directory,
                                                relative to the cPanel account's home
                                                directory.
                                              example: /username
                                              type: string
                                            perms:
                                              description: "Whether the Web Disk has read or read and write\npermissions.\n\n* `ro` —\_Read-only permissions.\n* `rw` —\_Read and write permissions."
                                              enum:
                                                - ro
                                                - rw
                                              example: rw
                                              type: string
                                            private:
                                              description: "Whether the Web Disk directory permissions are public\nor private.\n\n* `1` —\_Private (`0700`).\n* `0` —\_Public (`0755`)."
                                              enum:
                                                - 1
                                                - 0
                                              example: 0
                                              type: integer
                                          type: object
                                      type: object
                                    special:
                                      description: "Whether the account is a system-created special account that\nthe user **cannot** remove.\n\n* `1` —\_The user can remove the account.\n* `0` —\_The user **cannot** remove the account."
                                      enum:
                                        - 1
                                        - 0
                                      example: 1
                                      type: integer
                                    sub_account_exists:
                                      description: "Whether a Subaccount exists with the same username.\n\n* `1` —\_Exists.\n* `0` — Does **not** exist.\n* `null` —\_The account is **not** a Subaccount."
                                      enum:
                                        - 1
                                        - 0
                                      example: 0
                                      nullable: true
                                      type: integer
                                    synced_password:
                                      description: "Whether the user has synchronized the passwords for each of\nthe Subaccount's service accounts.\n\n* `1` —\_Synchronized.\n* `0` —\_**Not** synchronized.\n* `null` —\_The account is **not** a Subaccount."
                                      enum:
                                        - 1
                                        - 0
                                      example: 0
                                      nullable: true
                                      type: integer
                                    type:
                                      description: "The type of account.\n\n* `sub` —\_A Subaccount.\n* `hypothetical`\_—\_A hypothetical Subaccount that does **not**\nyet exist, but that the user could create as part of a merge.\n* `service` —\_A service account.\n* `cpanel` —\_A cPanel account."
                                      enum:
                                        - sub
                                        - hypothetical
                                        - service
                                        - cpanel
                                      example: sub
                                      type: string
                                    username:
                                      description: >-
                                        The username for the Subaccount.


                                        **Note:**


                                        This value does **not** include the
                                        domain name.
                                      example: username
                                      format: username
                                      type: string
                                  type: object
                                type: array
                            type: object
                          conflict:
                            description: "Whether the system detected an account conflict.\n\n* `1` —\_Conflict.\n* `0` —\_**No** conflict."
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Subaccounts and service accounts conflicts
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              check_account_conflicts \
              full_username='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/check_account_conflicts?full_username=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_check_account_conflicts.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_check_account_conflicts.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/check_account_conflicts/,
                {
                    'full_username' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_check_account_conflicts.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_check_account_conflicts.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'check_account_conflicts',
                array (
                    'full_username' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /UserManager/create_user:
    get:
      description: This function creates a Subaccount.
      operationId: UserManager::create_user
      parameters:
        - description: >-
            The Subaccount user's associated domain that the cPanel account
            owns.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: |-
            The Subaccount's password.

            **Note:**

             Email, FTP, and Web Disk services use this password.
          in: query
          name: password
          required: true
          schema:
            example: 123456luggage
            format: password
            type: string
        - description: >-
            The username for the Subaccount. The username can only contain
            alphanumeric characters, dots (`.`), hyphens (`-`), and underscores
            (`_`).


            **Note:**


            This value does **not** include the domain name.
          in: query
          name: username
          required: true
          schema:
            example: example
            format: username
            maxLength: 64
            type: string
        - description: |-
            An alternate email address for the Subaccount's user.

            **Note:**

             You **must** use this parameter if you set the `send_invite` value to `1`.
          in: query
          name: alternate_email
          required: false
          schema:
            default: null
            example: user@example.com
            format: email
            type: string
        - description: >-
            The URL path to the user's Subaccount profile photo.


            **Note:**


            You **must** use the HTTPS protocol to prevent mixed content
            warnings when users view the image from another HTTPS URL.


            **Warning:**


            We reserved this parameter for future use. Do **not** use this
            parameter.
          in: query
          name: avatar_url
          required: false
          schema:
            default: null
            example: https://img.example.com/avatars/example.jpg
            format: url
            type: string
        - description: >-
            A phone number for the Subaccount user that conforms to

            [ITU-T](https://en.wikipedia.org/wiki/ITU-T)'s
            [E.164](https://en.wikipedia.org/wiki/E.164)

            standards.


            **Warning:**


            We reserved this parameter for future use. Do **not** use this
            parameter.
          in: query
          name: phone_number
          required: false
          schema:
            default: null
            example: '+15551234567'
            type: string
        - description: The Subaccount user's first and/or last name.
          in: query
          name: real_name
          required: false
          schema:
            default: null
            example: John Doe
            type: string
        - description: >-
            Whether to send a reset password email to the Subaccount's alternate
            email address.


            * `1` - Send.

            * `0` - Do not send.
          in: query
          name: send_invite
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            Whether to grant the Subaccount email access.

            * `1` - Can access.
            * `0` - **Cannot** access.
          in: query
          name: services.email.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The maximum amount of disk space, in megabytes (MB), allocated to
            Subaccount's email account.


            * `0` or `unlimited` - The subaccount has unlimited disk space.


            This value defaults to the defined system value.


            **Note:**


            This value **cannot** be larger than the system's maximum email
            quota.
          in: query
          name: services.email.quota
          required: false
          schema:
            example: '500'
            type: string
        - description: |-
            Whether to send client configuration instructions to the account.

            * `1` - Send the instructions.
            * `0` - Do **not** send the instructions.
          in: query
          name: services.email.send_welcome_email
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to grant the Subaccount FTP access.

            * `1` - Can access.
            * `0` - **Cannot** access.
          in: query
          name: services.ftp.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The Subaccount's FTP home directory, relative to the cPanel
            account's home directory.


            **Note:**


            * This parameter is **required** if you enabled the
            `services.ftp.homedir` parameter.

            * The directory **must** exist.
          in: query
          name: services.ftp.homedir
          required: false
          schema:
            example: /Subaccount
            format: path
            type: string
        - description: |-
            Whether to grant the Subaccount Web Disk access.

            * `1` _ Can access.
            * `0` - **Cannot** access.
          in: query
          name: services.webdisk.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            Whether to enable the Web Disk Digest Authentication.


            * `1` - Enabled.

            * `0` - Disabled.


            **Note:**


            * **Only** enable Digest Authentication for clients that require
            additional compatibility support on
              certain versions of Windows® operating systems. This compatibility support is **only** required on servers
              that use a self-signed certificate for the `cpsrvd` and `cpdavd` daemons.
            * We recommend that you do **not** use Digest Authentication.
          in: query
          name: services.webdisk.enabledigest
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: >-
            The Subaccount's Web Disk home directory, relative to the cPanel
            account's home directory.


            **Note:**


            This parameter is **required** if you enable the
            `services.webdisk.enabled` parameter.
          in: query
          name: services.webdisk.homedir
          required: false
          schema:
            example: /Subaccount
            format: path
            type: string
        - description: |-
            The Subaccount's file permissions for its Web Disk home directory.

            * `ro` - Read-only permissions.
            * `rw` - Read and write permissions.

            **Note:**

             The `services.webdisk.homedir` parameter determines the Subaccount's Web Disk home directory.
          in: query
          name: services.webdisk.perms
          required: false
          schema:
            default: rw
            example: rw
            type: string
        - description: |-
            Whether to set the directory's permissions to public or private.

            * `1` - Private (`0700`).
            * `0` - Public (`0755`).
          in: query
          name: services.webdisk.private
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            The type of account.

            * `sub` - A Subaccount.
          in: query
          name: type
          required: false
          schema:
            default: sub
            enum:
              - sub
            example: sub
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        $ref: '#/components/schemas/CreateUserResponse'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Subaccount
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              create_user \
              domain='example.com' \
              password='123456luggage' \
              username='example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/create_user?domain=example.com&password=123456luggage&username=example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_create_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_create_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/create_user/,
                {
                    'domain' => 'example.com',
                    'password' => '123456luggage',
                    'username' => 'example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_create_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_create_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'create_user',
                array (
                    'domain' => 'example.com',
                    'password' => '123456luggage',
                    'username' => 'example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/delete_user:
    get:
      description: >-
        This function deletes a Subaccount. This function returns only metadata
        if no other service accounts exist with the same username and domain.

        * If one service account uses the same username and domain, the function
        returns the service account's information.

        * If two or more service accounts use the same username and domain, the
        function returns a hypothetical Subaccount.


        **Note:**


        * A hypothetical Subaccount consists of two or more service accounts
        that use the same username and domain.

        * This function returns only metadata if the specified username and
        domain do **not** match any service accounts or hypothetical
        Subaccounts.
      operationId: UserManager::delete_user
      parameters:
        - description: >-
            The Subaccount's associated domain.  The domain **must** be one that
            the cPanel account owns.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The Subaccount's username.

            * Characters — `a-z`, `A-Z`, `0-9`, dot (`.`), hyphen (`-`),
            underscore (`_`)


            **Note:**


            This value does **not** include the domain name.
          in: query
          name: username
          required: true
          schema:
            example: example
            maxLength: 64
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          alternate_email:
                            description: An alternate email address for the account's user.
                            example: user@example.com
                            format: email
                            type: string
                          avatar_url:
                            description: >-
                              The user's account profile photo.  The URL must
                              point to an image file.
                            example: https://img.example.com/avatars/example.jpg
                            format: url
                            type: string
                          can_delete:
                            description: >-
                              Whether the cPanel account user can delete the
                              account.

                              * `1` - Can delete.

                              * `0` - **Cannot** delete.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          can_set_password:
                            description: >-
                              Whether the cPanel account user can change the
                              account's password.

                              * `1` - Can change password.

                              * `0` - **Cannot** change password.


                              **Note:**


                              The function returns `0` for accounts that inherit
                              their password from the cPanel account.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          can_set_quota:
                            description: >-
                              Whether the cPanel account user can change the
                              account's disk usage quota.

                              * `1` - Can change quota.

                              * `0` - **Cannot** change quota.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          dismissed:
                            description: >-
                              Whether the cPanel account user dismissed the
                              merge prompt for the service account.

                              * `1` - Dismissed prompt.

                              * `0` - Did **not** dismiss prompt.


                              **Note:**


                              **Only** service accounts return this value.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          dismissed_merge_candidates:
                            description: >-
                              An array of objects that represent the service
                              accounts that the user dismissed the merge prompt
                              for.

                              This array will always return empty.


                              **Note:**


                              We reserved this return for future use.
                            items:
                              type: object
                            type: array
                          domain:
                            description: The account user's associated domain.
                            example: example.com
                            format: domain
                            type: string
                          full_username:
                            description: >-
                              The account's username and domain name, separated
                              by the `@` character.
                            example: user@example.com
                            type: string
                          guid:
                            description: The account unique identifier.
                            example: >-
                              N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
                            type: string
                          has_expired_invite:
                            description: |-
                              Whether the Subaccount owns an expired invitation.
                              * `1` - Owns an expired invitation.
                              * `0` - Does **not** own an expired invitation.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          has_invite:
                            description: |-
                              Whether the Subaccount owns an active invitation.
                              * `1` - Owns an invitation.
                              * `0` - Does **not** own an invitation.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          has_siblings:
                            description: >-
                              Whether the service account shares a
                              `full_username` value with another service
                              account.

                              * `1` - Shares.

                              * `0` - Does not share.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          invite_expiration:
                            description: >-
                              The time at which the new Subaccount invitation
                              will expire, given as a valid Unix epoch time or
                              null.


                              If the account does not own an active invitation,
                              this value returns `null`.
                            example: 1466258282
                            format: unix_timestamp
                            nullable: true
                            type: integer
                          issues:
                            description: >-
                              Information about any issues or problems with the
                              account.
                            items:
                              properties:
                                area:
                                  description: The affected section of cPanel & WHM.
                                  example: quota
                                  type: string
                                limit:
                                  description: >-
                                    The set quota megabyte (MB) limit for the
                                    affected account.
                                  example: 1500
                                  minimum: 0
                                  type: integer
                                message:
                                  description: The description of the issue.
                                  example: Your account is over quota.
                                  type: string
                                service:
                                  description: |-
                                    The affected service.
                                    * `email`
                                    * `ftp`
                                    * `webdisk`
                                  enum:
                                    - email
                                    - ftp
                                    - webdisk
                                  example: email
                                  type: string
                                type:
                                  description: |-
                                    The type of issue.
                                    * `error`
                                    * `warning`
                                    * `info`
                                  enum:
                                    - error
                                    - warning
                                    - info
                                  example: info
                                  type: string
                                used:
                                  description: >-
                                    The number of megabytes (MB) that the
                                    account currently uses.
                                  example: 2000
                                  minimum: 0
                                  type: integer
                            type: array
                          merge_candidates:
                            description: >-
                              The service accounts that the system could merge
                              for this account.


                              **Note:**


                              You can find descriptions for this array's returns
                              within this table.
                            items:
                              properties:
                                alternate_email:
                                  type: string
                                avatar_url:
                                  type: string
                                can_delete:
                                  type: integer
                                can_set_password:
                                  type: integer
                                can_set_quota:
                                  type: integer
                                dismissed:
                                  type: integer
                                dismissed_merge_candidates:
                                  items:
                                    type: string
                                  type: array
                                domain:
                                  format: domain
                                  type: string
                                full_username:
                                  type: string
                                guid:
                                  type: string
                                has_expired_invite:
                                  type: integer
                                has_invite:
                                  type: integer
                                has_siblings:
                                  type: integer
                                invite_expiration:
                                  type: integer
                                issues:
                                  items:
                                    type: string
                                  type: array
                                merge_candidates:
                                  items:
                                    type: string
                                  type: array
                                parent_type:
                                  type: string
                                phone_number:
                                  type: string
                                real_name:
                                  type: string
                                services:
                                  type: object
                                special:
                                  type: integer
                                sub_account_exists:
                                  type: integer
                                synced_password:
                                  type: integer
                                type:
                                  type: string
                                username:
                                  format: username
                                  type: string
                              type: object
                            type: array
                          parent_type:
                            description: >-
                              The type of account that could own the service
                              account.

                              * `sub` - An account.

                              * `hypothetical` - A hypothetical account does
                              **not** yet exist, but that the user could create
                              as part of a merge.

                              * `null` - **Not** a merge candidate.
                            enum:
                              - sub
                              - hypothetical
                            example: hypothetical
                            nullable: true
                            type: string
                          phone_number:
                            description: >-
                              The account user's phone number.

                              * A valid phone number that conforms to
                              [ITU-T](https://en.wikipedia.org/wiki/ITU-T)'s
                              [E.164-recommended
                              standard](https://en.wikipedia.org/wiki/E.164) for
                              the representation of telephone numbers.
                            example: '+15551234567'
                            type: string
                          real_name:
                            description: >-
                              The name of the account's user.

                              * A first name, a last name, or a first name and
                              last name.

                              * An empty string.
                            example: John Doe
                            type: string
                          services:
                            description: >-
                              Information about the account's access to email,
                              FTP, and Web Disk.
                            properties:
                              email:
                                description: >-
                                  Information that indicates the account's email
                                  status.
                                properties:
                                  enabled:
                                    description: >-
                                      Whether the account can access Webmail,
                                      POP, and IMAP services.

                                      * `1` - Can access.

                                      * `0` - **Cannot** access.
                                    enum:
                                      - 1
                                      - 0
                                    example: 1
                                    type: integer
                                  quota:
                                    description: >-
                                      The account's email disk space quota.

                                      * The set quota megabyte (MB) limit for
                                      the account's email disk space.

                                      * `0` - Unlimited.
                                    example: 100
                                    maximum: 999999
                                    minimum: 0
                                    type: integer
                                type: object
                              ftp:
                                description: Information about the account's FTP status.
                                properties:
                                  enabled:
                                    description: |-
                                      Whether the account can access FTP.
                                      * `1` - Can access.
                                      * `0` - **Cannot** access.
                                    enum:
                                      - 1
                                      - 0
                                    example: 0
                                    type: integer
                                  homedir:
                                    description: >-
                                      The account's FTP home directory.

                                      * A valid path, relative to the cPanel
                                      account's home directory.
                                    example: /account
                                    format: path
                                    type: string
                                  quota:
                                    description: >-
                                      The account's FTP disk space quota.

                                      * An integer that represents the account's
                                      maximum FTP disk usage, in megabytes (MB).

                                      * `0` - Unlimited.
                                    example: 100
                                    minimum: 0
                                    type: integer
                                type: object
                              webdisk:
                                description: >-
                                  Information about the account's Web Disk
                                  status.
                                properties:
                                  enabled:
                                    description: |-
                                      Whether the account can access Web Disk.
                                      * `1` - Can access.
                                      * `0` - **Cannot** access.
                                    enum:
                                      - 1
                                      - 0
                                    example: 0
                                    type: integer
                                  homedir:
                                    description: >-
                                      The account's Web Disk directory.

                                      * A valid path, relative to the cPanel
                                      account's home directory.
                                    example: /bob
                                    format: path
                                    type: string
                                  perms:
                                    description: >-
                                      Whether to grant write permissions to the
                                      account.

                                      * `ro` - Read-only permissions.

                                      * `rw` - Read and write permissions.
                                    example: rw
                                    type: string
                                  private:
                                    description: >-
                                      Whether to set the Web Disk directory's
                                      permissions to public or private.

                                      * `1` - Private (0700).

                                      * `0` - Public (0755).
                                    enum:
                                      - 1
                                      - 0
                                    example: 0
                                    type: integer
                                type: object
                            type: object
                          special:
                            description: >-
                              Whether the account is a system-created special
                              account that the user **cannot** remove.

                              * `1` - A special account.

                              * `0` - **Not** a special account.
                            enum:
                              - 1
                              - 0
                            example: 1
                            type: integer
                          sub_account_exists:
                            description: >-
                              Whether an account exists with the same username.

                              * `1` - Exists.

                              * `0` - Does not exist.

                              * `null` - The account is **not** a service
                              account.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          synced_password:
                            description: >-
                              Whether the user has synchronized the passwords
                              for each of the account's service accounts.

                              * `1` - Synchronized.

                              * `0` - **Not** synchronized.

                              * `null` - The account is **not** a Subaccount
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          type:
                            description: >-
                              The type of account.

                              * `hypothetical` - A hypothetical account that
                              does not exist, but that the user could create as
                              part of a merge.

                              * `service` - A service account.
                            enum:
                              - hypothetical
                              - service
                            example: service
                            type: string
                          username:
                            description: >-
                              The account username.


                              The username must meet the account name
                              limitations.

                              * Characters - `a-z`, `A-Z`, `0-9`, dot (`.`),
                              hyphen (`-`), underscore (`_`)


                              **Note::**


                              This value does **not** include the domain name.
                            format: username
                            maxLength: 64
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete Subaccount
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              delete_user \
              username='example' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/delete_user?username=example&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_delete_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_delete_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/delete_user/,
                {
                    'username' => 'example',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_delete_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_delete_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'delete_user',
                array (
                    'username' => 'example',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/dismiss_merge:
    get:
      description: "This function removes a service account as a link candidate to create a subaccount or\nlink to a subaccount. When you use this function, the system removes the *Link* option in\ncPanel's [*User Manager*](https://go.cpanel.net/cpaneldocsUserManager)\_interface (_cPanel >> Home >> Preferences >> User Manager_).\n\n**Note:**\n\nYou **must** use at least one of the following parameters:\n* `services.email.dismiss`\n* `services.ftp.dismiss`\n* `services.webdisk.dismiss`"
      operationId: dismiss_merge
      parameters:
        - description: The service account's associated domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: |-
            The username for the service account.

            **Note:**

            This parameter does **not** include the domain name.
          in: query
          name: username
          required: true
          schema:
            example: example1
            format: username
            maxLength: 64
            type: string
        - description: |-
            Whether to dismiss the merge of the email service account.

            * `1` - Dismiss.
            * `0` - Do **not** dismiss.
          in: query
          name: services.email.dismiss
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to dismiss the merge of the FTP service account.

            * `1` - Dismiss.
            * `0` - Do **not** dismiss.
          in: query
          name: services.ftp.dismiss
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to dismiss the merge of the Web Disk service account.

            * `1` - Dismiss.
            * `0` - Do **not** dismiss.
          in: query
          name: services.webdisk.dismiss
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: dismiss_merge
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Remove service account link request
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              dismiss_merge \
              username='example1' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/dismiss_merge?username=example1&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_dismiss_merge.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_dismiss_merge.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/dismiss_merge/,
                {
                    'username' => 'example1',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_dismiss_merge.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_dismiss_merge.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'dismiss_merge',
                array (
                    'username' => 'example1',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/edit_user:
    get:
      description: This function edits a Subaccount.
      operationId: edit_user
      parameters:
        - description: |-
            The Subaccount user's associated domain.

            A domain that the cPanel account owns.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The Subaccount's username.


            * Length - 64 characters.

            * Characters - `a-z`, `A-Z`, `0-9`, dot (`.`), hyphen (`-`),
            underscore (`_`).


            **Note:**

             This value does **not** include the domain name.
          in: query
          name: username
          required: true
          schema:
            example: example
            type: string
        - description: |-
            An alternate email address for the Subaccount's user.

            **Note:**

             The cPanel account user could use this email address to contact the Subaccount user if their primary email address's domain is unavailable.
          in: query
          name: alternate_email
          required: false
          schema:
            default: null
            example: user@example.com
            format: email
            nullable: true
            type: string
        - description: |-
            **Warning:**

             We reserved this parameter for future use. Do **not** use this parameter.

            The user's Subaccount profile photo.

            **Note:**

             You **must** use the HTTPS protocol to prevent mixed content warnings when users view the photo from another HTTPS URL.
          in: query
          name: avatar_url
          required: false
          schema:
            default: null
            example: https://img.example.com/avatars/example.jpg
            format: url
            nullable: true
            type: string
        - description: |-
            The Subaccount's new password.

            **Note:**

             The Subaccount uses this password for email, FTP, and Web Disk services.
          in: query
          name: password
          required: false
          schema:
            example: 12345luggage
            type: string
        - description: >-
            The Subaccount user's phone number.


            **Warning:**

             We reserved this parameter for future use. Do **not** use this parameter.

            The number conforms to the
            [ITU-T](https://en.wikipedia.org/wiki/ITU-T)'s
            [E.164](https://en.wikipedia.org/wiki/E.164)-recommended standard
            for the representation of telephone numbers.
          in: query
          name: phone_number
          required: false
          schema:
            default: null
            example: '+15551234567'
            nullable: true
            type: string
        - description: |-
            The Subaccount user's name.

            * A first name.
            * A last name.
            * A first name and last name.
            * An empty string.
          in: query
          name: real_name
          required: false
          schema:
            default: null
            example: John Doe
            nullable: true
            type: string
        - description: |-
            Whether to grant the Subaccount email access.

            * `1` - Can access.
            * `0` - **Cannot** access.
          in: query
          name: services.email.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: >-
            The maximum amount of disk space, in megabytes (MB), that the
            subaccount's email account may use.


            If you do not declare a value, the system defaults to the defined
            system value.


            **Note:**

             This value **cannot** be greater than the maximum email quota.

            * `0` or `unlimited` - The subaccount possesses unlimited disk
            space.
          in: query
          name: services.email.quota
          required: false
          schema:
            example: 500
            type: integer
        - description: |-
            Whether to grant the Subaccount FTP access.

            * `1` - Can access.
            * `0` - **Cannot** access.
          in: query
          name: services.ftp.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            The Subaccount's FTP home directory.

            **Note:**

             This parameter is **required** if you enable FTP access.

            A relative path from the cPanel account's home directory.

            **Note:**

             The specified directory **must** exist.
          in: query
          name: services.ftp.homedir
          required: false
          schema:
            example: /Subaccount
            format: path
            type: string
        - description: |-
            Whether to grant the Subaccount Web Disk access.

            * `1` - Can access.
            * `0` - **Cannot** access.
          in: query
          name: services.webdisk.enabled
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to enable Web Disk digest authentication.

            **Notes:**

             * **Only** enable Digest Authentication for clients that require additional compatibility support on certain versions of Windows® operating systems. This compatibility support is **only** required on servers that use a self-signed certificate for the `cpsrvd` and `cpdavd` daemons.
             * We recommend that you do **not** use Digest Authentication.


            * `1` - Enabled
            * `0` - Disabled.
          in: query
          name: services.webdisk.enabledigest
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            The Subaccount's Web Disk home directory.

            **Note:**

             This parameter is **required** if you enable Web Disk access.

            A relative path from the cPanel account's home directory.
          in: query
          name: services.webdisk.homedir
          required: false
          schema:
            example: /Subaccount
            format: path
            type: string
        - description: |-
            Whether to grant write permissions to the Subaccount.

            **Note:**

             The `services.webdisk.homedir` parameter determines the Subaccount's Web Disk home directory.

            * `ro` - Read-only permissions.
            * `rw` - Read and write permissions.
          in: query
          name: services.webdisk.perms
          required: false
          schema:
            default: rw
            enum:
              - ro
              - rw
            example: rw
            type: string
        - description: >-
            Whether to set the Web Disk directory's permissions to public or
            private.


            * `1` - Private (`0700`).

            * `0` - Public (`0755`).
          in: query
          name: services.webdisk.private
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            The type of account.

            * `sub` - A Subaccount.
          in: query
          name: type
          required: false
          schema:
            default: sub
            enum:
              - sub
            example: sub
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: edit_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        allOf:
                          - $ref: '#/components/schemas/EditUserSubaccountBase'
                          - $ref: '#/components/schemas/SubaccountMergeCandidates'
                        properties:
                          dismissed_merge_candidates:
                            description: >-
                              An array of objects of service candidates that the
                              system dismissed from merges.
                            items:
                              $ref: '#/components/schemas/SubaccountMergeCandidates'
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update Subaccount settings
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              edit_user \
              domain='example.com' \
              password='12345luggage' \
              username='example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/edit_user?domain=example.com&password=12345luggage&username=example
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_edit_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_edit_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/edit_user/,
                {
                    'domain' => 'example.com',
                    'password' => '12345luggage',
                    'username' => 'example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_edit_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_edit_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'edit_user',
                array (
                    'domain' => 'example.com',
                    'password' => '12345luggage',
                    'username' => 'example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/list_users:
    get:
      description: This function lists the cPanel account's Subaccounts.
      operationId: UserManager-list_users
      parameters:
        - description: >-
            Whether to return Subaccounts with the same name under the
            merge_candidates array.

            * `1` - Do **not** return.

            * `0` - Return.
          in: query
          name: flat
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_users
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            alternate_email:
                              description: >-
                                An alternate email address for the subaccount's
                                user.
                              example: user@example.com
                              format: email
                              type: string
                            avatar_url:
                              description: The user's subaccount profile photo.
                              example: https://img.example.com/avatars/example.jpg
                              format: url
                              type: string
                            can_delete:
                              description: >-
                                Whether the cPanel account user can delete the
                                subaccount.

                                * `1` - Can delete.

                                * `0` - **Cannot** delete.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            can_set_password:
                              description: >-
                                Whether the cPanel account user can change the
                                subaccount's password.

                                * `1` - Can change.

                                * `0` - **Cannot** change.


                                **Note:**

                                  The function returns a `0` value for subaccounts that inherit their password from the cPanel account.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            can_set_quota:
                              description: >-
                                Whether the cPanel account user can change the
                                subaccount's disk usage quota.

                                * `1` - Can change.

                                * `0` - **Cannot** change.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            dismissed:
                              description: >-
                                Whether the cPanel account user dismissed the
                                merge prompt for the service account.

                                * `1` - Dismissed.

                                * `0` - Did **not** dismiss.


                                **Note:**

                                 **Only** service accounts return this value.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            dismissed_merge_candidates:
                              description: >-
                                An array of objects containing information about
                                service candidates that the system dismissed
                                from merges.
                              example: []
                              items:
                                type: string
                              type: array
                            domain:
                              description: The subaccount user's associated domain.
                              example: example.com
                              format: domain
                              type: string
                            full_username:
                              description: The subaccount's username and domain name.
                              example: user@example.com
                              type: string
                            guid:
                              description: The subaccount unique identifier.
                              example: >-
                                N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
                              type: string
                            has_expired_invite:
                              description: >-
                                Whether an expired account login invitation
                                exists.

                                * `1` - Expired account invitation exists.

                                * `0` - Expired account invitation does **not**
                                exist.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            has_invite:
                              description: |-
                                Whether an account login invitation exists.
                                * `1` - Account invitation exists.
                                * `0` - Account invitation does **not** exist.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            has_siblings:
                              description: >-
                                Whether the service account shares a
                                full_username value with another service
                                account.

                                * `1` - Shares.

                                * `0` - Does **not** share.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            invite_expiration:
                              description: When the invitation expires.
                              example: 1591718154
                              format: unix_timestamp
                              type: integer
                            issues:
                              description: >-
                                Information about any issues or problems with
                                the subaccount.
                              items:
                                properties:
                                  area:
                                    description: The affected section of cPanel & WHM.
                                    example: quota
                                    type: string
                                  limit:
                                    description: >-
                                      The set quota megabyte (MB) limit for the
                                      affected subaccount.
                                    example: 1500
                                    format: megabytes
                                    minimum: 1
                                    type: integer
                                  message:
                                    description: The description of the issue.
                                    example: Your account is over quota.
                                    type: string
                                  service:
                                    description: The affected service.
                                    enum:
                                      - email
                                      - ftp
                                      - webdisk
                                    example: email
                                    type: string
                                  type:
                                    description: The type of issue.
                                    enum:
                                      - error
                                      - warning
                                      - info
                                    example: info
                                    type: string
                                  used:
                                    description: >-
                                      The number of megabytes (MB) that the
                                      account currently uses.
                                    example: 2000
                                    format: megabytes
                                    type: integer
                                type: object
                              type: array
                            merge_candidates:
                              description: >-
                                An array of objects that represents the service
                                accounts that the system could merge for this
                                subaccount.
                              example: []
                              items:
                                type: string
                              type: array
                            parent_type:
                              description: >-
                                The type of account that could own the service
                                account.

                                * `sub` - A subaccount.

                                * `hypothetical` - A hypothetical subaccount
                                that does **not** yet exist, but the user could
                                create as part of a merge.

                                * `null` - **Not** a merge candidate.
                              enum:
                                - sub
                                - hypothetical
                              example: hypothetical
                              nullable: true
                              type: string
                            phone_number:
                              description: >-
                                The subaccount user's phone number. A valid
                                phone number that conforms to
                                [ITU-T](https://en.wikipedia.org/wiki/ITU-T)'s
                                [E.164](https://en.wikipedia.org/wiki/E.164)
                                -recommended standard for the representation of
                                telephone numbers.
                              example: '+15551234567'
                              type: string
                            real_name:
                              description: The name of the subaccount's user.
                              example: John Doe
                              type: string
                            services:
                              description: >-
                                An object containing information about the
                                subaccount's access to email, FTP, and Web Disk.
                              properties:
                                email:
                                  description: >-
                                    An object containing the information that
                                    indicates the subaccount's email status.
                                  properties:
                                    enabled:
                                      description: >-
                                        Whether the subaccount can access
                                        Webmail, POP, and IMAP services.

                                        * `1` - Can access.

                                        * `0` - **Cannot** access.
                                      enum:
                                        - 0
                                        - 1
                                      example: 1
                                      type: integer
                                    quota:
                                      description: >-
                                        The maximum amount of disk space
                                        allocated to subaccount's email account.
                                      example: 100
                                      format: megabytes
                                      minimum: 1
                                      type: integer
                                  type: object
                                ftp:
                                  description: >-
                                    An object containing the information that
                                    indicates the subaccount's FTP status.
                                  properties:
                                    enabled:
                                      description: |-
                                        Whether the subaccount can access FTP.
                                        * `1` - Can access.
                                        * `0` - **Cannot** access.
                                      enum:
                                        - 0
                                        - 1
                                      example: 0
                                      type: integer
                                    homedir:
                                      description: >-
                                        The subaccount's FTP home directory
                                        relative to the cPanel account's home.
                                      example: /subaccount
                                      format: path
                                      type: string
                                    quota:
                                      description: |-
                                        The subaccount's FTP disk space quota.
                                        * `0` - Unlimited.
                                      example: 100
                                      format: megabytes
                                      maximum: 999999
                                      minimum: 0
                                      type: integer
                                  type: object
                                special:
                                  description: >-
                                    Whether the account is a system-created
                                    special account that the user cannot remove.

                                    * `1` - A special account.

                                    * `0` - **Not** a special account.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                webdisk:
                                  description: >-
                                    An object containing information that
                                    indicates the subaccount's Web Disk status.
                                  properties:
                                    enabled:
                                      description: >-
                                        Whether the subaccount can access Web
                                        Disk.

                                        * `1` - Can access.

                                        * `0` - **Cannot** access.
                                      enum:
                                        - 0
                                        - 1
                                      example: 0
                                      type: integer
                                    homedir:
                                      description: >-
                                        The subaccount's Web Disk home directory
                                        relative to the cPanel account's home
                                        directory.
                                      example: /bob
                                      format: path
                                      type: string
                                    perms:
                                      description: >-
                                        Whether to grant write permissions to
                                        the subaccount.

                                        * `ro` - Read-only permissions.

                                        * `rw` - Read and write permissions.
                                      enum:
                                        - ro
                                        - rw
                                      example: rw
                                      type: string
                                    private:
                                      description: >-
                                        Whether to set the Web Disk directory's
                                        permissions to public or private.

                                        * `1` - Private (0700).

                                        * `0` - Public (0755).
                                      enum:
                                        - 0
                                        - 1
                                      example: 0
                                      type: integer
                                  type: object
                              type: object
                            special:
                              description: >-
                                Whether the account is a system-created special
                                account that the user **cannot** remove.

                                * `1` — A special account.

                                * `0` — **Not** a special account.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            sub_account_exists:
                              description: >-
                                Whether a subaccount exists with the same
                                username.

                                * `1` - Exists.

                                * `0` - Does **not** exist.


                                **Note:**


                                The function returns a `null` value if the
                                account is **not** a service account.
                              enum:
                                - 0
                                - 1
                              example: 0
                              nullable: true
                              type: integer
                            synced_password:
                              description: >-
                                Whether the user has synchronized the passwords
                                for each of the subaccount's service accounts.

                                * `1` - Synchronized.

                                * `0` - Not synchronized.


                                **Note:**


                                The function returns a `null` value if the
                                account is **not** a subaccount.
                              enum:
                                - 0
                                - 1
                              example: 0
                              nullable: true
                              type: integer
                            type:
                              description: >-
                                The type of account.

                                * `sub` - A subaccount.

                                * `hypothetical` - A hypothetical subaccount
                                that does not exist, but that the user could
                                create as part of a merge.

                                * `service` - A service account.

                                * `cpanel` - The cPanel account.
                              enum:
                                - sub
                                - hypothetical
                                - service
                                - cpanel
                              example: sub
                              type: string
                            username:
                              description: >-
                                The username for the subaccount. A username that
                                meets the subaccount name limitations.

                                - Length  64 characters.

                                - Characters  a-z, A-Z, 0-9, dot (.), hyphen
                                (-), underscore (_).


                                **Note:**


                                This value does **not** include the domain name.
                              example: example
                              maxLength: 64
                              minLength: 1
                              pattern: ^[\w\.]{1,64}$
                              type: string
                          type: object
                        properties: {}
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's Subaccounts
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              list_users
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/list_users
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_list_users.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_list_users.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/list_users/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_list_users.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_list_users.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'list_users'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/lookup_service_account:
    get:
      description: This function lists a service account's information.
      operationId: lookup_service_account
      parameters:
        - description: The full username for the system account.
          in: query
          name: full_username
          required: true
          schema:
            example: username@example.com
            type: string
        - description: "The\_type of system account.\n* `email`\n* `ftp`\n* `webdisk`"
          in: query
          name: type
          required: true
          schema:
            enum:
              - email
              - ftp
              - webdisk
            example: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: lookup_service_account
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        allOf:
                          - $ref: >-
                              #/components/schemas/LookupServiceAccountSubaccountBase
                          - $ref: >-
                              #/components/schemas/LookupServiceAccountSubaccountMergeCandidates
                        properties:
                          dismissed_merge_candidates:
                            description: >-
                              An array of objects of service candidates that the
                              system dismissed from merges.
                            items:
                              $ref: >-
                                #/components/schemas/LookupServiceAccountSubaccountMergeCandidates
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return service account's information
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              lookup_service_account \
              type='email' \
              full_username='username@example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/lookup_service_account?type=email&full_username=username%40example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_lookup_service_account.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_lookup_service_account.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/lookup_service_account/,
                {
                    'type' => 'email',
                    'full_username' => 'username@example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_lookup_service_account.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_lookup_service_account.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'lookup_service_account',
                array (
                    'type' => 'email',
                    'full_username' => 'username@example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/lookup_user:
    get:
      description: This function lists a single Subaccount's information.
      operationId: lookup_user
      parameters:
        - description: "The\_Subaccount's\_unique identifier."
          in: query
          name: guid
          required: true
          schema:
            example: >-
              EXAMPLE1:EXAMPLE.COM:564CD663%3AFE50072F2620B50988EA4E5F46022546FBE6BDDE3C36C2F2534F4967C661EC37
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: lookup_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        allOf:
                          - $ref: '#/components/schemas/ServiceAccount'
                          - properties:
                              dismissed_merge_candidates:
                                description: >-
                                  An array of service account objects that the
                                  system dismissed from merges.
                                items:
                                  $ref: '#/components/schemas/ServiceAccount'
                                type: array
                              has_expired_invite:
                                description: >-
                                  Whether an expired account login invitation
                                  exists.

                                  * `1` - Expired account invitation exists.

                                  * `0` - Expired account invitation does not
                                  exist.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              has_invite:
                                description: |-
                                  Whether an account login invitation exists.
                                  * `1` -  Account invitation exists.
                                  * `0` -  Account invitation does not exist.
                                enum:
                                  - 0
                                  - 1
                                example: 0
                                type: integer
                              invite_expiration:
                                description: When the invitation expires.
                                example: 1591718154
                                format: unix_timestamp
                                nullable: true
                                type: integer
                          - type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Subaccount's information
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              lookup_user \
              guid='EXAMPLE1:EXAMPLE.COM:564CD663%3AFE50072F2620B50988EA4E5F46022546FBE6BDDE3C36C2F2534F4967C661EC37'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/lookup_user?guid=EXAMPLE1%3aEXAMPLE.COM%3a564CD663%253AFE50072F2620B50988EA4E5F46022546FBE6BDDE3C36C2F2534F4967C661EC37
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_lookup_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_lookup_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/lookup_user/,
                {
                    'guid' => 'EXAMPLE1:EXAMPLE.COM:564CD663%3AFE50072F2620B50988EA4E5F46022546FBE6BDDE3C36C2F2534F4967C661EC37',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_lookup_user.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_lookup_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'lookup_user',
                array (
                    'guid' => 'EXAMPLE1:EXAMPLE.COM:564CD663%3AFE50072F2620B50988EA4E5F46022546FBE6BDDE3C36C2F2534F4967C661EC37',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/merge_service_account:
    get:
      description: >-
        This function links service accounts to subaccounts and creates a
        subaccount if one does not exist.


        **Note:**


        You can only link email, FTP, or Web Disk accounts.


        **Important**


        You must use at least **one** of the following parameters:


        * services.email.merge

        * services.ftp.merge

        * services.webdisk.merge


        To link multiple service accounts, the service accounts **must** share
        the same username and domain.
      operationId: merge_service_account
      parameters:
        - description: The service account's associated domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: >-
            The username for the service account that meets the account name
            limitations.


            * Length - 64 characters

            * Characters — `a-z`, `A-Z`, `0-9`, dot (`.`), hyphen (`-`),
            underscore (`_`).


            **Note:**


            This value does **not** include the domain name.
          in: query
          name: username
          required: true
          schema:
            example: example
            format: username
            type: string
        - description: |-
            Whether to link the email account to the subaccount.

            * `1` - Merge.
            * `0` - Do **not** merge.
          in: query
          name: services.email.merge
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to link the FTP account to the subaccount.

            * `1` - Merge.
            * `0` - Do **not** merge.
          in: query
          name: services.ftp.merge
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: |-
            Whether to link the Web Disk account to the subaccount.

            * `1` - Merge.
            * `0` - Do **not** merge.
          in: query
          name: services.webdisk.merge
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: merge_service_account
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          alternate_email:
                            description: >-
                              An alternate email address for the subaccount's
                              user.
                            example: user@example.com
                            format: email
                            type: string
                          avatar_url:
                            description: The user's subaccount profile photo.
                            example: https://img.example.com/avatars/example.jpg
                            format: url
                            type: string
                          can_delete:
                            description: >-
                              Whether the cPanel account user can delete the
                              subaccount.

                              * `1` - Can delete.

                              * `0` - **Cannot** delete.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          can_set_password:
                            description: >-
                              Whether the cPanel account user can change the
                              subaccount's password.

                              * `1` - Can change.

                              * `0` - **Cannot** change.


                              **Note:**


                              The function returns a `0` value for subaccounts
                              that inherit their password from the cPanel
                              account.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          can_set_quota:
                            description: >-
                              Whether the cPanel account user can change the
                              subaccount's disk usage quota.

                              * `1` - Can change.

                              * `0` - **Cannot** change.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          dismissed:
                            description: >-
                              Whether the cPanel account user dismissed the
                              merge prompt for the service account.


                              **Note:**


                              Only service accounts return this value.

                              * `1` - Dismissed.

                              * `0` - Did **not** dismiss.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          dismissed_merge_candidates:
                            description: >-
                              An array of objects of service candidates that the
                              system dismissed from merges.
                            items:
                              properties:
                                alternate_email:
                                  description: >-
                                    An alternate email address for the
                                    subaccount's user.
                                  example: user@example.com
                                  format: email
                                  type: string
                                avatar_url:
                                  description: The user's subaccount profile photo.
                                  example: https://img.example.com/avatars/example.jpg
                                  format: url
                                  type: string
                                can_delete:
                                  description: >-
                                    Whether the cPanel account user can delete
                                    the subaccount.

                                    * `1` - Can delete.

                                    * `0` - **Cannot** delete.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                                can_set_password:
                                  description: >-
                                    Whether the cPanel account user can change
                                    the subaccount's password.

                                    * `1` - Can change.

                                    * `0` - **Cannot** change.


                                    **Note:**


                                    The function returns a `0` value for
                                    subaccounts that inherit their password from
                                    the cPanel account.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                can_set_quota:
                                  description: >-
                                    Whether the cPanel account user can change
                                    the subaccount's disk usage quota.

                                    * `1` - Can change.

                                    * `0` - **Cannot** change.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                                domain:
                                  description: >-
                                    The subaccount user's associated domain that
                                    the cPanel account owns.
                                  example: example.com
                                  format: domain
                                  type: string
                                full_username:
                                  description: The subaccount's username and domain name.
                                  example: user@example.com
                                  format: email
                                  type: string
                                guid:
                                  description: >-
                                    The subaccount unique identifier. The system
                                    assigned unique value.
                                  example: >-
                                    N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
                                  type: string
                                has_siblings:
                                  description: >-
                                    Whether the service account shares a
                                    `full_username` value with another service
                                    account.

                                    * `1` - Shares.

                                    * `0` - Does **not** share.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                                issues:
                                  description: >-
                                    Information about any issues or problems
                                    with the subaccount.
                                  items:
                                    properties:
                                      area:
                                        description: The affected section of cPanel & WHM.
                                        example: quota
                                        type: string
                                      limit:
                                        description: >-
                                          The set quota megabyte (MB) limit for
                                          the affected subaccount.
                                        example: 1500
                                        minimum: 1
                                        type: integer
                                      message:
                                        description: The description of the issue.
                                        example: Your account is over quota.
                                        type: string
                                      service:
                                        description: |-
                                          The affected service.
                                          * `email`
                                          * `ftp`
                                          * `webdisk`
                                        enum:
                                          - email
                                          - ftp
                                          - webdisk
                                        example: email
                                        type: string
                                      type:
                                        description: |-
                                          The type of issue.

                                          * `error`
                                          * `warning`
                                          * `info`
                                        enum:
                                          - error
                                          - warning
                                          - info
                                        example: info
                                        type: string
                                      used:
                                        description: >-
                                          The number of megabytes (MB) that the
                                          account currently uses.
                                        example: 2000
                                        minimum: 1
                                        type: integer
                                    type: object
                                  type: array
                                parent_type:
                                  description: >-
                                    The type of account that could own the
                                    service account.

                                    * `sub`          - A subaccount.

                                    * `hypothetical` - A hypothetical subaccount
                                    that does not yet exist, but the user could
                                    create as part of a merge.

                                    * `null`         - **Not** a merge
                                    candidate.
                                  enum:
                                    - sub
                                    - hypothetical
                                  example: hypothetical
                                  nullable: true
                                  type: string
                                phone_number:
                                  description: The subaccount user's phone number.
                                  example: '+15551234567'
                                  type: string
                                real_name:
                                  description: |-
                                    The name of the subaccount's user.

                                    * A first name.
                                    * Last name.
                                    * First name and last name.
                                    * An empty string.
                                  example: John Doe
                                  type: string
                                services:
                                  description: >-
                                    This object contains information about the
                                    subaccount's access to email, FTP, and Web
                                    Disk.
                                  properties:
                                    email:
                                      description: >-
                                        This object contains the information
                                        that indicates the subaccount's email
                                        status.
                                      properties:
                                        enabled:
                                          description: >-
                                            Whether the subaccount can access
                                            Webmail, POP, and IMAP services.


                                            * `1` - Can access.

                                            * `0` - **Cannot** access.
                                          enum:
                                            - 0
                                            - 1
                                          example: 1
                                          type: integer
                                        quota:
                                          description: >-
                                            The maximum amount of disk space
                                            allocated to subaccount's email account.
                                            A positive integer that represents the
                                            maximum disk space that the subaccount
                                            may use, in megabytes (MB).


                                            **Note:**


                                            This function will **not** return `0` as
                                            a value.
                                          example: 100
                                          type: integer
                                      type: object
                                    ftp:
                                      description: >-
                                        This object contains the information
                                        that indicates the subaccount's FTP
                                        status.
                                      properties:
                                        enabled:
                                          description: |-
                                            Whether the subaccount can access FTP.
                                            * `1` - Can access.
                                            * `0` - **Cannot** access.
                                          enum:
                                            - 0
                                            - 1
                                          example: 0
                                          type: integer
                                        homedir:
                                          description: The subaccount's FTP home directory.
                                          example: /subaccount
                                          format: path
                                          type: string
                                        quota:
                                          description: >-
                                            The subaccount's FTP disk space quota.

                                            * >= `1` - Represents the maximum disk
                                            space that the subaccount may use, in
                                            megabytes (MB).

                                            * `0`   - Unlimited.
                                          example: 100
                                          maximum: 999999
                                          minimum: 0
                                          type: integer
                                      type: object
                                    webdisk:
                                      description: >-
                                        This object contains information that
                                        indicates the subaccount's Web Disk
                                        status.
                                      properties:
                                        enabled:
                                          description: >-
                                            Whether the subaccount can access Web
                                            Disk.

                                            * `1` - Can access.

                                            * `0` - **Cannot** access.
                                          enum:
                                            - 0
                                            - 1
                                          example: 0
                                          type: integer
                                        homedir:
                                          description: >-
                                            The subaccount's Web Disk home
                                            directory.
                                          example: /bob
                                          format: path
                                          type: string
                                        perms:
                                          description: >-
                                            Whether to grant write permissions to
                                            the subaccount.

                                            * `ro` - Read-only permissions.

                                            * `rw` - Read and write permissions.
                                          enum:
                                            - ro
                                            - rw
                                          example: rw
                                          type: string
                                        private:
                                          description: >-
                                            Whether to set the Web Disk directory's
                                            permissions to public or private.

                                            * `1` - Private (0700).

                                            * `0` - Public (0755).
                                          enum:
                                            - 0
                                            - 1
                                          example: 0
                                          type: integer
                                      type: object
                                  type: object
                                special:
                                  description: >-
                                    Whether the account is a system-created
                                    special account that the user **cannot**
                                    remove.

                                    * `1` - A special account.

                                    * `0` - **Not** a special account.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                sub_account_exists:
                                  description: >-
                                    Whether a subaccount exists with the same
                                    username.


                                    * `1` - Exists.

                                    * `0` - Does **not** exist.


                                    **Note:**


                                    The function returns a `null` value if the
                                    account is not a service account.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  nullable: true
                                  type: integer
                                synced_password:
                                  description: >-
                                    Whether the user has synchronized the
                                    passwords for each of the subaccount's
                                    service accounts.


                                    * `1` - Synchronized.

                                    * `0` - **Not** synchronized.


                                    **Note:**


                                    The function returns a `null` value if the
                                    account is **not** a subaccount.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  nullable: true
                                  type: integer
                                type:
                                  description: >-
                                    The type of account.


                                    * `sub` - A subaccount.

                                    * `hypothetical` - A hypothetical subaccount
                                    that does **not** exist, but that the user
                                    could create as part of a merge.

                                    * `service` - A service account.

                                    * `cpanel` - The cPanel account.
                                  enum:
                                    - sub
                                    - hypothetical
                                    - service
                                    - cpanel
                                  example: sub
                                  type: string
                                username:
                                  description: The username for the subaccount.
                                  example: example
                                  format: username
                                  type: string
                              type: object
                            type: array
                          domain:
                            description: >-
                              The subaccount user's associated domain. A domain
                              that the cPanel account owns.
                            example: example.com
                            format: domain
                            type: string
                          full_username:
                            description: The subaccount's username and domain name.
                            example: user@example.com
                            format: email
                            type: string
                          guid:
                            description: >-
                              The subaccount unique identifier. The system
                              assigned unique value.
                            example: >-
                              N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
                            type: string
                          has_expired_invite:
                            description: >-
                              Whether an expired account login invitation
                              exists.

                              * `1` - Expired account invitation exists.

                              * `0` - Expired account invitation does **not**
                              exist.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          has_invite:
                            description: |-
                              Whether an account login invitation exists.
                              * `1` - Account invitation exists.
                              * `0` - Account invitation does **not** exist.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          has_siblings:
                            description: >-
                              Whether the service account shares a
                              `full_username` value with another service
                              account.

                              * `1` - Shares.

                              * `0` - Does **not** share.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          invite_expiration:
                            description: When the invitation expires.
                            example: 1591718154
                            format: unix_timestamp
                            type: integer
                          issues:
                            description: >-
                              Information about any issues or problems with the
                              subaccount.
                            items:
                              properties:
                                area:
                                  description: The affected section of cPanel & WHM.
                                  example: quota
                                  type: string
                                limit:
                                  description: >-
                                    The set quota megabyte (MB) limit for the
                                    affected subaccount.
                                  example: 1500
                                  minimum: 1
                                  type: integer
                                message:
                                  description: The description of the issue.
                                  example: Your account is over quota.
                                  type: string
                                service:
                                  description: |-
                                    The affected service.
                                    * `email`
                                    * `ftp`
                                    * `webdisk`
                                  enum:
                                    - email
                                    - ftp
                                    - webdisk
                                  example: email
                                  type: string
                                type:
                                  description: |-
                                    The type of issue.

                                    * `error`
                                    * `warning`
                                    * `info`
                                  enum:
                                    - error
                                    - warning
                                    - info
                                  example: info
                                  type: string
                                used:
                                  description: >-
                                    The number of megabytes (MB) that the
                                    account currently uses.
                                  example: 2000
                                  minimum: 1
                                  type: integer
                              type: object
                            type: array
                          merge_candidates:
                            description: >-
                              An array of objects that represents the service
                              accounts that the system could merge for this
                              subaccount.
                            items:
                              properties:
                                alternate_email:
                                  description: >-
                                    An alternate email address for the
                                    subaccount's user.
                                  example: user@example.com
                                  format: email
                                  type: string
                                avatar_url:
                                  description: The user's subaccount profile photo.
                                  example: https://img.example.com/avatars/example.jpg
                                  format: url
                                  type: string
                                can_delete:
                                  description: >-
                                    Whether the cPanel account user can delete
                                    the subaccount.

                                    * `1` - Can delete.

                                    * `0` - **Cannot** delete.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                                can_set_password:
                                  description: >-
                                    Whether the cPanel account user can change
                                    the subaccount's password.

                                    * `1` - Can change.

                                    * `0` - **Cannot** change.


                                    **Note:**


                                    The function returns a `0` value for
                                    subaccounts that inherit their password from
                                    the cPanel account.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                can_set_quota:
                                  description: >-
                                    Whether the cPanel account user can change
                                    the subaccount's disk usage quota.

                                    * `1` - Can change.

                                    * `0` - **Cannot** change.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                                domain:
                                  description: >-
                                    The subaccount user's associated domain. A
                                    domain that the cPanel account owns.
                                  example: example.com
                                  format: domain
                                  type: string
                                full_username:
                                  description: The subaccount's username and domain name.
                                  example: user@example.com
                                  format: email
                                  type: string
                                guid:
                                  description: >-
                                    The subaccount unique identifier. The system
                                    assigned unique value.
                                  example: >-
                                    N4641:EXAMPLE.COM:564CC8A7:A82EA007D8348AC631C0170F9418EC1DEB0D164CC5A722A87C55EF5DD2AD98D4
                                  type: string
                                has_siblings:
                                  description: >-
                                    Whether the service account shares a
                                    `full_username` value with another service
                                    account.

                                    * `1` - Shares.

                                    * `0` - Does **not** share.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                                issues:
                                  description: >-
                                    Information about any issues or problems
                                    with the subaccount.
                                  items:
                                    properties:
                                      area:
                                        description: The affected section of cPanel & WHM.
                                        example: quota
                                        type: string
                                      limit:
                                        description: >-
                                          The set quota megabyte (MB) limit for
                                          the affected subaccount.
                                        example: 1500
                                        minimum: 1
                                        type: integer
                                      message:
                                        description: The description of the issue.
                                        example: Your account is over quota.
                                        type: string
                                      service:
                                        description: |-
                                          The affected service.
                                          * `email`
                                          * `ftp`
                                          * `webdisk`
                                        enum:
                                          - email
                                          - ftp
                                          - webdisk
                                        example: email
                                        type: string
                                      type:
                                        description: |-
                                          The type of issue.

                                          * `error`
                                          * `warning`
                                          * `info`
                                        enum:
                                          - error
                                          - warning
                                          - info
                                        example: info
                                        type: string
                                      used:
                                        description: >-
                                          The number of megabytes (MB) that the
                                          account currently uses.
                                        example: 2000
                                        minimum: 1
                                        type: integer
                                    type: object
                                  type: array
                                parent_type:
                                  description: >-
                                    The type of account that could own the
                                    service account.

                                    * `sub` - A subaccount.

                                    * `hypothetical` - A hypothetical subaccount
                                    that does **not** yet exist, but the user
                                    could create as part of a merge.

                                    * `null` - Not a merge candidate.
                                  enum:
                                    - sub
                                    - hypothetical
                                  example: hypothetical
                                  nullable: true
                                  type: string
                                phone_number:
                                  description: The subaccount user's phone number.
                                  example: '+15551234567'
                                  type: string
                                real_name:
                                  description: |-
                                    The name of the subaccount's user.

                                    * A first name.
                                    * Last name.
                                    * First name and last name.
                                    * An empty string.
                                  example: John Doe
                                  type: string
                                services:
                                  description: >-
                                    This object contains information about the
                                    subaccount's access to email, FTP, and Web
                                    Disk.
                                  properties:
                                    email:
                                      description: >-
                                        This object contains the information
                                        that indicates the subaccount's email
                                        status.
                                      properties:
                                        enabled:
                                          description: >-
                                            Whether the subaccount can access
                                            Webmail, POP, and IMAP services.


                                            * `1` - Can access.

                                            * `0` - **Cannot** access.
                                          enum:
                                            - 0
                                            - 1
                                          example: 1
                                          type: integer
                                        quota:
                                          description: >-
                                            The maximum amount of disk space
                                            allocated to subaccount's email account.
                                            A positive integer that represents the
                                            maximum disk space that the subaccount
                                            may use, in megabytes (MB).


                                            **Note:**


                                            This function will **not** return `0` as
                                            a value.
                                          example: 100
                                          type: integer
                                      type: object
                                    ftp:
                                      description: >-
                                        This object contains the information
                                        that indicates the subaccount's FTP
                                        status.
                                      properties:
                                        enabled:
                                          description: |-
                                            Whether the subaccount can access FTP.
                                            * `1` - Can access.
                                            * `0` - **Cannot** access.
                                          enum:
                                            - 0
                                            - 1
                                          example: 0
                                          type: integer
                                        homedir:
                                          description: The subaccount's FTP home directory.
                                          example: /subaccount
                                          format: path
                                          type: string
                                        quota:
                                          description: >-
                                            The subaccount's FTP disk space quota.

                                            * >= `1` - Represents the maximum disk
                                            space that the subaccount may use, in
                                            megabytes (MB).

                                            * `0`   - Unlimited.
                                          example: 100
                                          maximum: 999999
                                          minimum: 0
                                          type: integer
                                      type: object
                                    webdisk:
                                      description: >-
                                        This object contains information that
                                        indicates the subaccount's Web Disk
                                        status.
                                      properties:
                                        enabled:
                                          description: >-
                                            Whether the subaccount can access Web
                                            Disk.

                                            * `1` - Can access.

                                            * `0` - **Cannot** access.
                                          enum:
                                            - 0
                                            - 1
                                          example: 0
                                          type: integer
                                        homedir:
                                          description: >-
                                            The subaccount's Web Disk home
                                            directory.
                                          example: /bob
                                          format: path
                                          type: string
                                        perms:
                                          description: >-
                                            Whether to grant write permissions to
                                            the subaccount.

                                            * `ro` - Read-only permissions.

                                            * `rw` - Read and write permissions.
                                          example: rw
                                          type: string
                                        private:
                                          description: >-
                                            Whether to set the Web Disk directory's
                                            permissions to public or private.

                                            * `1` - Private (0700).

                                            * `0` - Public (0755).
                                          enum:
                                            - 0
                                            - 1
                                          example: 0
                                          type: integer
                                      type: object
                                  type: object
                                special:
                                  description: >-
                                    Whether the account is a system-created
                                    special account that the user **cannot**
                                    remove.

                                    * `1` - A special account.

                                    * `0` - **Not** a special account.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                sub_account_exists:
                                  description: >-
                                    Whether a subaccount exists with the same
                                    username.


                                    * `1` - Exists.

                                    * `0` - Does **not** exist.


                                    **Note:**


                                    The function returns a `null` value if the
                                    account is **not** a service account.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  nullable: true
                                  type: integer
                                synced_password:
                                  description: >-
                                    Whether the user has synchronized the
                                    passwords for each of the subaccount's
                                    service accounts.


                                    * `1` - Synchronized.

                                    * `0` - **Not** synchronized.


                                    **Note:**


                                    The function returns a `null` value if the
                                    account is **not** a subaccount.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  nullable: true
                                  type: integer
                                type:
                                  description: >-
                                    The type of account.


                                    * `sub` - A subaccount.

                                    * `hypothetical` - A hypothetical subaccount
                                    that does **not** exist, but that the user
                                    could create as part of a merge.

                                    * `service` - A service account.

                                    * `cpanel` - The cPanel account.
                                  enum:
                                    - sub
                                    - hypothetical
                                    - service
                                    - cpanel
                                  example: sub
                                  type: string
                                username:
                                  description: >-
                                    The username for the service account that
                                    meets the account name limitations.


                                    * Length - 64 characters

                                    * Characters — `a-z`, `A-Z`, `0-9`, dot
                                    (`.`), hyphen (`-`), underscore (`_`).


                                    **Note:**


                                    This value does **not** include the domain
                                    name.
                                  example: example
                                  format: username
                                  type: string
                              type: object
                            type: array
                          parent_type:
                            description: >-
                              The type of account that could own the service
                              account.

                              * `sub` - A subaccount.

                              * `hypothetical` - A hypothetical subaccount that
                              does **not** yet exist, but the user could create
                              as part of a merge.

                              * `null` - Not a merge candidate.
                            enum:
                              - sub
                              - hypothetical
                            example: hypothetical
                            nullable: true
                            type: string
                          phone_number:
                            description: The subaccount user's phone number.
                            example: '+15551234567'
                            type: string
                          real_name:
                            description: |-
                              The name of the subaccount's user.

                              * A first name.
                              * Last name.
                              * First name and last name.
                              * An empty string.
                            example: John Doe
                            type: string
                          services:
                            description: >-
                              This object contains information about the
                              subaccount's access to email, FTP, and Web Disk.
                            properties:
                              email:
                                description: >-
                                  This object contains the information that
                                  indicates the subaccount's email status.
                                properties:
                                  enabled:
                                    description: >-
                                      Whether the subaccount can access Webmail,
                                      POP, and IMAP services.


                                      * `1` - Can access.

                                      * `0` - **Cannot** access.
                                    enum:
                                      - 0
                                      - 1
                                    example: 1
                                    type: integer
                                  quota:
                                    description: >-
                                      The maximum amount of disk space allocated
                                      to subaccount's email account. A positive
                                      integer that represents the maximum disk
                                      space that the subaccount may use, in
                                      megabytes (MB).


                                      **Note:**


                                      This function will **not** return `0` as a
                                      value.
                                    example: 100
                                    type: integer
                                type: object
                              ftp:
                                description: >-
                                  This object contains the information that
                                  indicates the subaccount's FTP status.
                                properties:
                                  enabled:
                                    description: |-
                                      Whether the subaccount can access FTP.
                                      * `1` - Can access.
                                      * `0` - **Cannot** access.
                                    enum:
                                      - 0
                                      - 1
                                    example: 0
                                    type: integer
                                  homedir:
                                    description: The subaccount's FTP home directory.
                                    example: /subaccount
                                    format: path
                                    type: string
                                  quota:
                                    description: >-
                                      The subaccount's FTP disk space quota.

                                      * >= `1` - Represents the maximum disk
                                      space that the subaccount may use, in
                                      megabytes (MB).

                                      * `0`   - Unlimited.
                                    example: 100
                                    maximum: 999999
                                    minimum: 0
                                    type: integer
                                type: object
                              webdisk:
                                description: >-
                                  This object contains information that
                                  indicates the subaccount's Web Disk status.
                                properties:
                                  enabled:
                                    description: >-
                                      Whether the subaccount can access Web
                                      Disk.

                                      * `1` - Can access.

                                      * `0` - **Cannot** access.
                                    enum:
                                      - 0
                                      - 1
                                    example: 0
                                    type: integer
                                  homedir:
                                    description: The subaccount's Web Disk home directory.
                                    example: /bob
                                    format: path
                                    type: string
                                  perms:
                                    description: >-
                                      Whether to grant write permissions to the
                                      subaccount.

                                      * `ro` - Read-only permissions.

                                      * `rw` - Read and write permissions.
                                    example: rw
                                    type: string
                                  private:
                                    description: >-
                                      Whether to set the Web Disk directory's
                                      permissions to public or private.

                                      * `1` - Private (0700).

                                      * `0` - Public (0755).
                                    enum:
                                      - 0
                                      - 1
                                    example: 0
                                    type: integer
                                type: object
                            type: object
                          special:
                            description: >-
                              Whether the account is a system-created special
                              account that the user **cannot** remove.

                              * `1` - A special account.

                              * `0` - **Not** a special account.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          sub_account_exists:
                            description: >-
                              Whether a subaccount exists with the same
                              username.


                              * `1` - Exists.

                              * `0` - Does **not** exist.


                              **Note:**


                              The function returns a `null` value if the account
                              is **not** a service account.
                            enum:
                              - 0
                              - 1
                            example: 0
                            nullable: true
                            type: integer
                          synced_password:
                            description: >-
                              Whether the user has synchronized the passwords
                              for each of the subaccount's service accounts.


                              * `1` - Synchronized.

                              * `0` - **Not** synchronized.


                              **Note:**


                              The function returns a `null` value if the account
                              is **not** a subaccount.
                            enum:
                              - 0
                              - 1
                            example: 0
                            nullable: true
                            type: integer
                          type:
                            description: >-
                              The type of account.


                              * `sub` - A subaccount.

                              * `hypothetical` - A hypothetical subaccount that
                              does **not** exist, but that the user could create
                              as part of a merge.

                              * `service` - A service account.

                              * `cpanel` - The cPanel account.
                            example: sub
                            type: string
                          username:
                            description: >-
                              The username for the subaccount.


                              The username for the service account that meets
                              the account name limitations.


                              * Length - 64 characters

                              * Characters — `a-z`, `A-Z`, `0-9`, dot (`.`),
                              hyphen (`-`), underscore (`_`).


                              **Note:**


                              This value does **not** include the domain name.
                            example: example
                            format: username
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Register service account to Subaccount
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              merge_service_account \
              username='example' \
              domain='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/merge_service_account?username=example&domain=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_merge_service_account.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_merge_service_account.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/merge_service_account/,
                {
                    'username' => 'example',
                    'domain' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_merge_service_account.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_merge_service_account.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'merge_service_account',
                array (
                    'username' => 'example',
                    'domain' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /UserManager/unlink_service_account:
    get:
      description: This function unlinks a service account from a subaccount.
      operationId: unlink_service_account
      parameters:
        - description: The subaccount's associated domain.
          in: query
          name: domain
          required: true
          schema:
            example: example.com
            format: domain
            type: string
        - description: |-
            The service to unlink.

            * `email`
            * `ftp`
            * `webdisk`
          in: query
          name: service
          required: true
          schema:
            enum:
              - email
              - ftp
              - webdisk
            example: ftp
            type: string
        - description: |-
            The subaccount's username.

            **Note:**

            This value does **not** include the domain name.
          in: query
          name: username
          required: true
          schema:
            example: example
            format: username
            type: string
        - description: "Whether to dismiss the service account as a merge candidate.\n* `1` - Dismiss as merge candidate.\n* `0` - Display as merge candidate.\n\n**Note:**\n\n If any email, FTP, or Web Disk accounts use the same username, cPanel's\_[*User Manager*](https://go.cpanel.net/cpaneldocsUserManager)\_interface (*cPanel >> Home >> Preferences >> User Manager*) allows you to merge those accounts into a\_subaccount."
          in: query
          name: dismiss
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: unlink_service_account
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserManager
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Unregister service account from Subaccount
      tags:
        - UserManager
        - Subaccount Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserManager \
              unlink_service_account \
              username='example' \
              domain='example.com' \
              service='ftp'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserManager/unlink_service_account?username=example&domain=example.com&service=ftp
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserManager_unlink_service_account.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserManager_unlink_service_account.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserManager/,
                q/unlink_service_account/,
                {
                    'username' => 'example',
                    'domain' => 'example.com',
                    'service' => 'ftp',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserManager_unlink_service_account.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserManager_unlink_service_account.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserManager',
                'unlink_service_account',
                array (
                    'username' => 'example',
                    'domain' => 'example.com',
                    'service' => 'ftp',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /UserTasks/delete:
    get:
      description: >-
        This function deletes a process from the user task queue.


        Each cPanel account uses a separate user task queue in order to ensure
        that

        processes for one user do not impede another user on the server.


        * For example, the [*Git Version
        Control*](https://go.cpanel.net/GitVersionControl)

        interface (*cPanel >> Home >> Files >> Git Version Control*) uses the
        user task queue

        to clone repositories (via the `VersionControl::create` function).

        * For more information, read our

        [Task Queue Monitor](https://go.cpanel.net/whmdocsTaskQueueMonitor)
        documentation.
      operationId: UserTasks::delete
      parameters:
        - description: The task's ID number.
          in: query
          name: id
          required: true
          schema:
            example: 00000000\/5a9ec8dd4c345d
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserTasks
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove item from task queue
      tags:
        - UserTasks
        - SSE Task Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: >-
            uapi --output=jsonpretty --user=username UserTasks delete
            id='00000000\/5a9ec8dd4c345d'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserTasks/delete?id=00000000%5c%2f5a9ec8dd4c345d
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserTasks_delete.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserTasks_delete.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserTasks/,
                q/delete/,
                {
                    'id' => '00000000\/5a9ec8dd4c345d',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserTasks_delete.live.php and put this code into
            that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserTasks_delete.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserTasks',
                'delete',
                array (
                    'id' => '00000000\/5a9ec8dd4c345d',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 72
  /UserTasks/retrieve:
    get:
      description: >-
        This function retrieves a cPanel account's user task queue information.


        Each cPanel account uses a separate user task queue in order to ensure
        that

        processes for one user do not impede another user on the server.


        * For example, the [*Git Version
        Control*](https://go.cpanel.net/GitVersionControl)

        interface (*cPanel >> Home >> Files >> Git Version Control*) uses the
        user task queue

        to clone repositories (via the `VersionControl::create` function).

        * For more information, read our

        [Task Queue Monitor](https://go.cpanel.net/whmdocsTaskQueueMonitor)
        documentation.
      operationId: retrieve
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: retrieve
                    type: string
                  module:
                    description: The name of the module called.
                    example: UserTasks
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An array of objects containing data for a task in the
                          user task queue.
                        example:
                          - action: create
                            args: {}
                            id: 00000000\/5a9ec8dd4c345d
                            subsystem: VersionControl
                          - action: create
                            args:
                              repository_root: /home/user/public_html/example
                            id: 00000000/h39dnn27suc13l
                            subsystem: VersionControl
                        items:
                          properties:
                            action:
                              description: |-
                                The task's action.

                                * `create`

                                **Note:**

                                `create` is the only possible value.
                              enum:
                                - create
                              example: create
                              type: string
                            args:
                              description: >-
                                An object containing one or more action- and
                                subsystem-specific

                                arguments, if any exist.


                                For example, a task that returns an `action`
                                value of `create` and

                                a `subsystem` value of `VersionControl` will
                                include the

                                `repository_root` argument.
                              properties:
                                repository_root:
                                  description: >-
                                    The absolute path to the repostiory's `root`
                                    directory.
                                  type: string
                              type: object
                            id:
                              description: The task's ID number.
                              example: 00000000\/5a9ec8dd4c345d
                              type: string
                            subsystem:
                              description: |-
                                The subsystem that will handle the process.

                                * `VersionControl`

                                **Note:**

                                `VersionControl` is the only possible value.
                              enum:
                                - VersionControl
                              example: VersionControl
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return task queue information
      tags:
        - UserTasks
        - SSE Task Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              UserTasks \
              retrieve
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/UserTasks/retrieve
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file UserTasks_retrieve.live.pl and put this code into
            that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/UserTasks_retrieve.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/UserTasks/,
                q/retrieve/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file UserTasks_retrieve.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/UserTasks_retrieve.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'UserTasks',
                'retrieve'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 72
  /Users/change_password:
    get:
      description: This function updates the cPanel account's password.
      operationId: Users_change_password
      parameters:
        - description: The new password.
          in: query
          name: newpass
          required: true
          schema:
            example: MyNewPassw0rd!
            format: password
            type: string
        - description: The current password.
          in: query
          name: oldpass
          required: true
          schema:
            example: ThisWasMyPassword!
            format: password
            type: string
        - description: >-
            Whether to use Digest Authentication.

            * `1` - Use Digest Auth.

            * `0` - Do not use Digest Auth.


            **Note:**


            * Windows® Vista, Windows® 7, Windows® 8, and Windows® 10 require
            that you use Digest Authentication 
              in order to access your Web Disk over a clear text, unencrypted connection.
          in: query
          name: enabledigest
          required: false
          schema:
            default: The previously-set value or 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            Whether to update the cPanel account's MySQL password.
            * `1` - Update MySQL password.
            * `0` - Do not update MySQL password.
          in: query
          name: enablemysql
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: change_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: Users
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success

                          * `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running an API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update cPanel account password
      tags:
        - Users
        - Account Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Users \
              change_password \
              oldpass='MyPreviousPassword' \
              newpass='MyUpdatedPassword'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Users/change_password?oldpass=12346=newpass=ThisIs4It!
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Users_change_password.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Users_change_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Users/,
                q/change_password/,
                {
                    'oldpass' => 'PreviousPassword',
                    'newpass' => 'B3tt3rP4ssw0rd!',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Users_change_password.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Users_change_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Users',
                'change_password',
                array (
                    'oldpass' => 'PreviousPassword',
                    'newpass' => 'B3tt3rP4ssw0rd!',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 116
  /Variables/get_server_information:
    get:
      description: >-
        This function retrieves the configuration settings for the cPanel & WHM
        server on which an account exists. This is useful, for example, to
        verify which applications and functionality are available on the
        account.
      operationId: Variables-get_server_information
      parameters:
        - description: >-
            The server configuration settings to return.


            <details>

            <summary>Click to view information about the available server
            configuration settings.</summary>


            * `default_theme` - The cPanel interface's default theme.

            * `email_filter_storage_directory` - The location of the Exim email
            filter storage directory.

            * `allow_park_subdomain_on_hostname` - Whether the system allows
            users to park subdomains of the server's hostname.

            * `allow_remote_domains` - Whether the system allows users to create
            addon domains or aliases that resolve to other servers.

            * `allow_unregistered_domains` - Whether the system allows users to
            add domains they didn't register with a domain name registrar.

            * `apache_port` - The IP address or IP address with a firewall port
            number that Apache® uses to listen for requests and serve web pages
            over an unsecured connection.

            * `apache_ssl_port` - The port or IP address that Apache uses to
            listen for requests and serve web pages over a secure connection.

            * `api_shell` - Whether the user can access cPanel's [*API
            Shell*](https://go.cpanel.net/cpaneldocsAPIShell) interface (*cPanel
            >> Home >> Advanced >> API Shell*).

            * `awstats_browser_update` - Whether the user can update their
            [AWStats](http://awstats.sourceforge.net/) software.

            * `awstats_reverse_dns` - Whether the AWStats statistical analysis
            software interprets visitors' domain names as IP addresses.

            * `cpanel_root_directory` - The cPanel `root` directory.

            * `database_prefix_required` - Whether the account requires database
            prefixing.

            * `display_cpanel_doclinks` - Whether the system displays links to
            cPanel feature documentation in the cPanel interface.

            * `dnsadmin_app` - The application that processes DNS management
            requests.

            * `empty_trash_days` - The minimum age of files that the system will
            automatically purge from `.trash` folders in user home directories.

            * `enable_file_protect` - Whether [EasyApache 4's *FileProtect*
            option](https://go.cpanel.net/EasyApache4FileprotectOption) is
            enabled.

            * `file_upload_maximum_bytes` - The maximum file size, in megabytes
            (MB), that a user can upload to a server.

            * `file_upload_must_leave_bytes` - The minimum filesystem quota that
            the system requires after a file uploads to a server.

            * `file_usage` - Whether file usage information displays in the
            cPanel *Home* interface's statistics bar.

            * `ftp_server` - The FTP server.

            * `htaccess_check_recurse` - The maximum number of directories deep
            to look for `.htaccess` files when you change the PHP handler.

            * `invite_sub` - Whether cPanel account users can send invitations
            to new Subaccount users via cPanel's [*User
            Manager*](https://go.cpanel.net/cpaneldocsUserManager) interface
            (*cPanel >> Home >> Preferences >> User Manager*).

            * `ipv6_listen` - Whether the `cpsrvd` daemon and other cPanel & WHM
            services listen on IPv6.

            * `local_nameserver_type` - The DNS nameserver's type.

            * `logout_redirect_url` - The logout redirection URL.

            * `mailbox_storage_format` - The mailbox storage format for new
            accounts.

            * `mail_server` - The mailserver type.

            * `minimum_password_strength` - The minimum strength for cPanel
            account passwords. 

            * `minimum_password_strength_mysql` - The minimum strength for
            MySQL® or MariaDB® passwords.

            * `mysql_host` - The MySQL or MariaDB hostname or IP address.

            * `mysql_version` - The MySQL or MariaDB version.

            * `php_maximum_execution_time` - The number of seconds that a PHP
            script can run before the system terminates it.

            * `php_post_maximum_size` - The maximum size, in megabytes (MB), of
            a POST request.

            * `php_system_default_version` - The system's default version of
            PHP.

            * `php_upload_maximum_filesize` - The maximum file size, in
            megabytes (MB), that a PHP script may upload.

            * `php_loader` - The PHP loaders through which the system executes
            internal PHP scripts.

            * `php_open_basedir_home` - Whether PHP `open_basedir` protection is
            enabled on the server.

            * `phpmyadmin_disable_search_info_schema` - Whether the user can
            search for the phpMyAdmin information schema.

            * `docroots_in_public_html_only` - Whether the system restricts
            users from creating addon domains and subdomains outside of their
            `public_html` directory.

            * `require_ssl` - Whether the system requires passwords and other
            sensitive information use SSL encryption.

            * `allow_reset_password` - Whether cPanel's [*Reset
            Password*](https://go.cpanel.net/resetsubaccountpass) feature is
            enabled for the account.

            * `allow_reset_password_for_subaccounts` - Whether cPanel's [*Reset
            Password*](https://go.cpanel.net/resetsubaccountpass) feature is
            enabled for subaccounts on the account.

            * `disable_analog` - Whether users can access the [*Analog
            Stats*](https://go.cpanel.net/cpaneldocsAnalogStats) interface
            (*cPanel >> Home >> Metrics >> Analog Stats*).

            * `skip_apache_clients_optimizer` - Whether the Apache Client
            Optimizer is enabled.

            * `disable_awstats` - Whether the
            [AWStats](http://awstats.sourceforge.net/) software is enabled.

            * `skip_mailbox_warnings_check` - Whether mailbox usage warnings are
            enabled.

            * `disable_boxtrapper` - Whether
            [*BoxTrapper*](https://go.cpanel.net/cpaneldocsBoxTrapper) is
            enabled.

            * `skip_bandwidth_limit_check` - Whether the system automatically
            suspends HTTP service for accounts that exceed their bandwidth
            limit.

            * `disable_mailman` - Whether Mailman mailing lists are enabled.

            * `disable_roundcube` - Whether [Roundcube
            webmail](https://roundcube.net/) is enabled.

            * `disable_spamassassin` - Whether the Apache SpamAssassin™ spam
            filter is enabled.

            * `disable_spambox` - Whether Apache SpamAssassin's spam box feature
            is enabled.

            * `disable_webalizer` - Whether the
            [Webalizer](https://docs.cpanel.net/cpanel/metrics/webalizer/)
            statistics program is enabled.

            * `ssl_default_key_type` - The default SSL/TLS encryption algorithm
            used by the system.

            * `use_information_schema` - Whether the system uses the MySQL®
            `INFORMATION_SCHEMA` view. This view includes disk usage by all
            MySQL tables in the disk usage totals.

            * `use_mail_for_mailman_url` - Whether the system prefixes Mailman
            URLs with the `mail` prefix. For example,
            `http://mail.domain.com/mailman`.

            * `is_mod_userdir_enabled` - Whether the [Apache `mod_userdir`
            Tweak](https://go.cpanel.net/whmdocsApachemod_userdirTweak) is
            enabled.

            * `version` - The system's Linux® kernel version.

            </details>


            **Note:**


            * If you don't use this parameter, this function returns **all** of
            the server's configuration settings.

            * To retrieve multiple variables, increment this parameter. For
            example, `name-1=variable`, `name-2=variable`, `name-3=variable`.
          examples:
            multiple:
              summary: Get multiple configuration settings.
              value: >-
                name=allow_park_subdomain_on_hostname&name=allow_remote_domains&name=allow_reset_password
            single:
              summary: Get a single configuration setting.
              value: allow_park_subdomain_on_hostname
          in: query
          name: name
          required: false
          schema:
            enum:
              - default_theme
              - email_filter_storage_directory
              - allow_park_subdomain_on_hostname
              - allow_remote_domains
              - allow_unregistered_domains
              - apache_port
              - apache_ssl_port
              - api_shell
              - awstats_browser_update
              - awstats_reverse_dns
              - cpanel_root_directory
              - database_prefix_required
              - display_cpanel_doclinks
              - dnsadmin_app
              - empty_trash_days
              - enable_file_protect
              - file_upload_maximum_bytes
              - file_upload_must_leave_bytes
              - file_usage
              - ftp_server
              - htaccess_check_recurse
              - invite_sub
              - ipv6_listen
              - local_nameserver_type
              - logout_redirect_url
              - mailbox_storage_format
              - mail_server
              - minimum_password_strength
              - minimum_password_strength_mysql
              - mysql_host
              - mysql_version
              - php_maximum_execution_time
              - php_post_maximum_size
              - php_system_default_version
              - php_upload_maximum_filesize
              - php_loader
              - php_open_basedir_home
              - phpmyadmin_disable_search_info_schema
              - docroots_in_public_html_only
              - require_ssl
              - allow_reset_password
              - allow_reset_password_for_subaccounts
              - disable_analog
              - skip_apache_clients_optimizer
              - disable_awstats
              - skip_mailbox_warnings_check
              - disable_boxtrapper
              - skip_bandwidth_limit_check
              - disable_mailman
              - disable_roundcube
              - disable_spamassassin
              - disable_spambox
              - disable_webalizer
              - ssl_default_key_type
              - use_information_schema
              - use_mail_for_mailman_url
              - is_mod_userdir_enabled
              - version
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_server_information
                    type: string
                  module:
                    description: The name of the module called.
                    example: Variables
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          allow_park_subdomain_on_hostname:
                            description: >-
                              Whether the system allows users to park subdomains
                              of the server's hostname.


                              * `1` - Allows.

                              * `0` - Doesn't allow.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          allow_remote_domains:
                            description: >-
                              Whether the system allows users to create addon
                              domains or aliases that resolve to other servers.


                              * `1` - Allows.

                              * `0` - Doesn't allow.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          allow_reset_password:
                            description: >-
                              Whether cPanel's [*Reset
                              Password*](https://go.cpanel.net/resetsubaccountpass)
                              feature is enabled for the account.


                              * `1` - *Reset Password* feature enabled.

                              * `0` - *Reset Password* feature not enabled.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          allow_reset_password_for_subaccounts:
                            description: >-
                              Whether cPanel's [*Reset
                              Password*](https://go.cpanel.net/resetsubaccountpass)
                              feature is enabled for subaccounts on the account.


                              * `1` - *Reset Password* feature enabled.

                              * `0` - *Reset Password* feature not enabled.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          allow_unregistered_domains:
                            description: >-
                              Whether the system allows users to add domains
                              they didn't register with a domain name registrar.


                              * `1` - Allows.

                              * `0` - Doesn't allow.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          apache_port:
                            description: >-
                              The IP address or IP address with a firewall port
                              number that Apache uses to listen for requests and
                              serve web pages over an unsecured connection.
                            example: 192.0.2.0:80
                            nullable: true
                            type: string
                          apache_ssl_port:
                            description: >-
                              The IP address or IP address with a firewall port
                              number that Apache uses to listen for requests and
                              serve web pages over a secure connection.
                            example: 192.0.2.0:443
                            nullable: true
                            type: string
                          api_shell:
                            description: >-
                              Whether the user can access cPanel's [*API
                              Shell*](https://go.cpanel.net/cpaneldocsAPIShell)
                              interface (*cPanel >> Home >> Advanced >> API
                              Shell*).


                              * `1` - Can access.

                              * `0` - Can't access.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          awstats_browser_update:
                            description: >-
                              Whether the user can update their
                              [AWStats](http://awstats.sourceforge.net/)
                              software.


                              * `1` - Can update.

                              * `0` - Can't update.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          awstats_reverse_dns:
                            description: >-
                              Whether the AWStats statistical analysis software
                              interprets visitors' domain names as IP addresses.


                              * `1` - Interprets visitors' domain names as IP
                              addresses.

                              * `0` - Doesn't interpret visitors' domain names
                              as IP addresses.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          cpanel_root_directory:
                            description: The cPanel `root` directory.
                            example: /usr/local/cpanel
                            format: path
                            nullable: true
                            type: string
                          database_prefix_required:
                            description: |-
                              Whether the account requires database prefixing.

                              * `1` - Requires database prefixing.
                              * `0` - Doesn't require database prefixing.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          default_theme:
                            description: The cPanel interface's default theme.
                            example: jupiter
                            nullable: true
                            type: string
                          disable_analog:
                            description: >-
                              Whether users can access the [*Analog
                              Stats*](https://go.cpanel.net/cpaneldocsAnalogStats)
                              interface (*cPanel >> Home >> Metrics >> Analog
                              Stats*).


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          disable_awstats:
                            description: >-
                              Whether the
                              [AWStats](http://awstats.sourceforge.net/)
                              software is enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          disable_boxtrapper:
                            description: >-
                              Whether
                              [*BoxTrapper*](https://go.cpanel.net/cpaneldocsBoxTrapper)
                              is enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          disable_mailman:
                            description: |-
                              Whether Mailman mailing lists are enabled.

                              * `1` - Enabled.
                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          disable_roundcube:
                            description: >-
                              Whether [Roundcube
                              webmail](https://roundcube.net/) is enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          disable_spamassassin:
                            description: >-
                              Whether the Apache SpamAssassin spam filter is
                              enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          disable_spambox:
                            description: >-
                              Whether Apache SpamAssassin's spam box feature is
                              enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          disable_webalizer:
                            description: >-
                              Whether the [Webalizer](http://www.webalizer.org/)
                              statistics program is enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          display_cpanel_doclinks:
                            description: >-
                              Whether the system displays links to cPanel
                              feature documentation in the cPanel interface.


                              * `1` - Displays documentation links.

                              * `0` - Doesn't display documentation links.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          dnsadmin_app:
                            description: >-
                              The application that processes DNS management
                              requests.


                              * The value is an application's file path,
                              relative to the user's home directory.

                              * `dnsadmin`

                              * `auto-detect SSL`
                            example: dnsadmin
                            nullable: true
                            type: string
                            oneOf:
                              - description: >-
                                  The application's file path, relative to the
                                  user's home directory.
                                type: string
                              - enum:
                                  - dnsadmin
                                  - auto-detect SSL
                                type: string
                          docroots_in_public_html_only:
                            description: >-
                              Whether the system restricts users from creating
                              addon domains and subdomains outside of their
                              `public_html` directory.


                              * `1` - Restricts users from creating addon
                              domains and subdomains outside of their
                              `public_html` directory.

                              * `0` - Allows users to creating addon domains and
                              subdomains outside of their `public_html`
                              directory.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          email_filter_storage_directory:
                            description: >-
                              The location of the Exim email filter storage
                              directory.
                            example: /etc/vfilters
                            format: path
                            nullable: true
                            type: string
                          empty_trash_days:
                            description: >-
                              The minimum age of files that the system will
                              automatically purge from `.trash` folders in user
                              home directories.
                            example: disabled
                            nullable: true
                            type: string
                          enable_file_protect:
                            description: >-
                              Whether [EasyApache 4's *FileProtect*
                              option](https://go.cpanel.net/EasyApache4FileprotectOption)
                              is enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          file_upload_maximum_bytes:
                            description: >-
                              The maximum file size, in megabytes (MB), that a
                              user can upload to a server.
                            example: null
                            maximum: 10240
                            minimum: 1
                            nullable: true
                            type: integer
                          file_upload_must_leave_bytes:
                            description: >-
                              The minimum filesystem quota that the system
                              requires after a file uploads to a server.
                            example: 5
                            minimum: 1
                            nullable: true
                            type: integer
                          file_usage:
                            description: >-
                              Whether file usage information displays in the
                              cPanel *Home* interface's statistics bar.


                              * `1` - Displays file usage information.

                              * `0` - Doesn't display file usage information.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          ftp_server:
                            description: >-
                              The FTP server.


                              * `pure-ftpd` - The Pure-FTPD server.

                              * `proftpd` - The ProFTPD FTP server.

                              * `disabled` - FTP has been disabled on this
                              server.
                            enum:
                              - pure-ftpd
                              - proftpd
                              - disabled
                            example: disabled
                            nullable: true
                            type: string
                          htaccess_check_recurse:
                            description: >-
                              The maximum number of directories deep to look for
                              `.htaccess` files when you change the PHP handler.
                            example: 2
                            minimum: 0
                            nullable: true
                            type: integer
                          invite_sub:
                            description: >-
                              Whether cPanel account users can send invitations
                              to new Subaccount users via cPanel's [*User
                              Manager*](https://go.cpanel.net/cpaneldocsUserManager)
                              interface (*cPanel >> Home >> Preferences >> User
                              Manager*).


                              * `1` - Can send invitations.

                              * `0` - Can't send invitations.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          ipv6_listen:
                            description: >-
                              Whether the `cpsrvd` daemon and other cPanel & WHM
                              services listen on IPv6.


                              * `1` - Listen on IPv6.

                              * `0` - Don't listen on IPv6.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          is_mod_userdir_enabled:
                            description: >-
                              Whether the [Apache `mod_userdir`
                              Tweak](https://go.cpanel.net/whmdocsApachemod_userdirTweak)
                              is enabled.


                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          local_nameserver_type:
                            description: >-
                              The DNS nameserver's type.


                              * `powerdns` - The PowerDNS nameserver.

                              * `bind` - The bind nameserver.

                              * `disabled` - Nameserver's have been disabled on
                              this server.
                            enum:
                              - powerdns
                              - bind
                              - disabled
                            example: powerdns
                            nullable: true
                            type: string
                          logout_redirect_url:
                            description: The logout redirection URL.
                            example: https://cpanel.net
                            format: url
                            nullable: true
                            type: string
                          mail_server:
                            description: >-
                              The mailserver type.


                              * `dovecot` - The Dovecot mailserver.

                              * `disabled` - The mailserver is disabled on this
                              system.
                            enum:
                              - dovecot
                              - disabled
                            example: dovecot
                            nullable: true
                            type: string
                          mailbox_storage_format:
                            description: |-
                              The mailbox storage format for new accounts.

                              * `mdbox` - The mdbox storage format.
                              * `maildir` - The maildir storage format.
                            enum:
                              - mdbox
                              - maildir
                            example: maildir
                            nullable: true
                            type: string
                          minimum_password_strength:
                            description: The minimum strength for cPanel account passwords.
                            example: 65
                            maximum: 100
                            minimum: 0
                            nullable: true
                            type: integer
                          minimum_password_strength_mysql:
                            description: >-
                              The minimum strength for MySQL or MariaDB
                              passwords.
                            example: 65
                            maximum: 100
                            minimum: 0
                            nullable: true
                            type: integer
                          mysql_host:
                            description: The MySQL or MariaDB hostname or IP address.
                            example: localhost
                            type: string
                            nullable: true
                            oneOf:
                              - format: domain
                                type: string
                              - format: ipv4
                                type: string
                          mysql_version:
                            description: The MySQL or MariaDB version.
                            example: '5.7'
                            nullable: true
                            type: string
                          php_loader:
                            description: >-
                              The PHP loaders through which the system executes
                              internal PHP scripts.


                              * `ioncube` - The ionCube PHP loader.

                              * `sourceguardian` - The SourceGuardian PHP
                              loader.

                              * `ioncube,sourceguardian` - Both the ionCube and
                              SourceGuardian PHP loaders are in use.

                              * An emtpy string - PHP loader is not in use.
                            enum:
                              - ''
                              - ioncube
                              - sourceguardian
                              - ioncube,sourceguardian
                            example: ioncube
                            nullable: true
                            type: string
                          php_maximum_execution_time:
                            description: >-
                              The number of seconds that a PHP script can run
                              before the system terminates it.
                            example: 90
                            minimum: 90
                            nullable: true
                            type: integer
                          php_open_basedir_home:
                            description: >-
                              Whether PHP `open_basedir` protection is enabled
                              on the server.


                              * `1` - Enabled.

                              * `0` - Not enabled.


                              **Important:**


                              We removed WHM's *PHP open_basedir Tweak*
                              interface (*WHM >> Home >> Security Center >> PHP
                              open_basedir Tweak*)
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          php_post_maximum_size:
                            description: >-
                              The maximum size, in megabytes (MB), of a POST
                              request.
                            example: 55
                            maximum: 2047
                            minimum: 55
                            nullable: true
                            type: integer
                          php_system_default_version:
                            description: The system's default version of PHP.
                            example: ea-php73
                            nullable: true
                            type: string
                          php_upload_maximum_filesize:
                            description: >-
                              The maximum file size, in megabytes (MB), that a
                              PHP script may upload.
                            example: 50
                            maximum: 2047
                            minimum: 50
                            nullable: true
                            type: integer
                          phpmyadmin_disable_search_info_schema:
                            description: >-
                              Whether the user can search for the phpMyAdmin
                              information schema.


                              * `1` - Searches are enabled.

                              * `0` - Searches are **not** enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          require_ssl:
                            description: >-
                              Whether the system requires passwords and other
                              sensitive information use SSL encryption.


                              * `1` - Requires SSL.

                              * `0` - Doesn't require SSL.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          skip_apache_clients_optimizer:
                            description: |-
                              Whether the Apache Client Optimizer is enabled.

                              * `1` - Enabled.
                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          skip_bandwidth_limit_check:
                            description: >-
                              Whether the system automatically suspends HTTP
                              service for accounts that exceed their bandwidth
                              limit.


                              * `1` - Suspends HTTP service.

                              * `0` - Doesn't suspend HTTP service.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          skip_mailbox_warnings_check:
                            description: |-
                              Whether mailbox usage warnings are enabled.

                              * `1` - Enabled.
                              * `0` - Not enabled.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          ssl_default_key_type:
                            description: >-
                              The default SSL/TLS encryption algorithm used by
                              the system.


                              * `rsa-2048` - The rsa-2048 encryption algorithm.

                              * `ecdsa-secp384r1` - The ecdsa-secp384r1
                              encryption algorithm.

                              * `ecdsa-prime256v1` - The ecdsa-prime256v1
                              encryption algorithm.

                              * `rsa-4096` - The rsa-4096 encryption algorithm.
                            enum:
                              - rsa-2048
                              - ecdsa-secp384r1
                              - ecdsa-prime256v1
                              - rsa-4096
                            example: rsa-2048
                            nullable: true
                            type: string
                          use_information_schema:
                            description: >-
                              Whether the system uses the MySQL
                              `INFORMATION_SCHEMA` view. This view includes disk
                              usage by all MySQL tables in the disk usage
                              totals.


                              * `1` - Uses MySQL's `INFORMATION_SCHEMA` view.

                              * `0` - Doesn't use MySQL's `INFORMATION_SCHEMA`
                              view.
                            enum:
                              - 1
                              - 0
                            example: 1
                            nullable: true
                            type: integer
                          use_mail_for_mailman_url:
                            description: >-
                              Whether the system prefixes Mailman URLs with
                              mail. For example,
                              `http://mail.domain.com/mailman`.


                              * `1` - Prefixes Mailman URLs with the `mail.`
                              prefix.

                              * `0` - Doesn't prefix Mailman URLs with the
                              `mail.` prefix.
                            enum:
                              - 1
                              - 0
                            example: 0
                            nullable: true
                            type: integer
                          version:
                            description: The system's Linux Kernel version.
                            example: '3.4'
                            nullable: true
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return server's configuration settings
      tags:
        - cPanel Server Information
        - Variables
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Variables \
              get_server_information
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Variables/get_server_information
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Variables_get_server_information.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Variables_get_server_information.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Variables/,
                q/get_server_information/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Variables_get_server_information.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Variables_get_server_information.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Variables',
                'get_server_information'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /Variables/get_session_information:
    get:
      description: This function retrieves a web server's hostname.
      operationId: get_session_information
      parameters:
        - description: |-
            The web server environment variable to retrieve. You can **only**
            retrieve the web server's hostname.

            * `host` is the only possible value.
          in: query
          name: name
          required: false
          schema:
            default: host
            enum:
              - host
            example: host
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_session_information
                    type: string
                  module:
                    description: The name of the module called.
                    example: Variables
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          host:
                            description: The web server's hostname.
                            example: example.com
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return web server's hostname
      tags:
        - Variables
        - Login Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Variables \
              get_session_information
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Variables/get_session_information
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Variables_get_session_information.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Variables_get_session_information.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Variables/,
                q/get_session_information/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Variables_get_session_information.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Variables_get_session_information.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Variables',
                'get_session_information'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /Variables/get_user_information:
    get:
      description: This function retrieves the user's account configuration settings.
      operationId: Variables-get_user_information
      parameters:
        - description: >-
            The user configuration variables to retrieve. If you don't use this
            parameter, this function returns **all** of the user's configuration
            data.


            **Note:**


            To retrieve multiple account configuration settings for a user,
            increment the parameter name. For example: `name-0`, `name-1`, and
            `name-2`.
          examples:
            multiple:
              summary: Get multiple account configuration settings.
              value: name-1=mailbox_format&name-2=home&name-3=shell
            single:
              summary: Get a single account configuration setting.
              value: mailbox_format
          in: query
          name: name
          required: false
          schema:
            example: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_user_information
                    type: string
                  module:
                    description: The name of the module called.
                    example: Variables
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          backup_enabled:
                            description: |-
                              Whether the user has backups enabled.
                              * `1` - Backups enabled.
                              * `0` - Backups not enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          bandwidth_limit:
                            description: |-
                              The account's bandwidth limit.
                              * `0` - unlimited
                              * A maximum amount of bandwidth, in bytes.
                            example: 0
                            minimum: 0
                            type: integer
                          cgi_enabled:
                            description: |-
                              Whether CGI is enabled.
                              * `1` - Enabled.
                              * `0` - Not enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          contact_email:
                            description: The account's contact email address.
                            example: user@example.com
                            format: email
                            type: string
                          contact_email_2:
                            description: >-
                              The account's alternate contact email address, if
                              one exists.
                            example: user2@example.com
                            format: email
                            type: string
                          cpanel_root_directory:
                            description: The `root` directory.
                            example: /usr/local/cpanel
                            format: path
                            type: string
                          created:
                            description: >-
                              The account's creation date in [Unix
                              time](http://en.wikipedia.org/wiki/Unix_time)
                              format.
                            example: 1432220941
                            format: unix_timestamp
                            type: integer
                          created_in_version:
                            description: >-
                              The version of cPanel used during account
                              creation.
                            example: 11.94.0.0
                            format: cPanel version
                            type: string
                          database_owner:
                            description: |-
                              The owner of the account's databases.
                              * `root`
                              * A reseller account's username.
                              * The account's username.
                            example: root
                            format: username
                            type: string
                          dead_domains:
                            description: The account's inactive domains.
                            items:
                              example: example.example.com
                              format: domain
                              type: string
                            type: array
                          demo_mode:
                            description: |-
                              Whether demo mode is enabled.
                              * `1` - Enabled.
                              * `0` - Not enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          disk_block_limit:
                            description: |-
                              The number of disk blocks for the account.
                              * `0` - unlimited
                              * A maximum amount of disk blocks, in kilobytes.
                            example: 100000000
                            minimum: 0
                            type: integer
                          dkim_enabled:
                            description: >-
                              Whether DomainKeys Identified Mail (DKIM) is
                              enabled.

                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          domain:
                            description: The account's main domain.
                            example: example.com
                            format: domain
                            type: string
                          domains:
                            description: list of the account's domains and subdomains.
                            items:
                              example: example.com
                              format: domain
                              type: string
                            type: array
                          feature:
                            description: >-
                              The available features on the account that exist
                              in the `/var/cpanel/users/user` file`, where user
                              represents the cPanel user.


                              **Note:**


                              This object returns any custom features that the
                              hosting provider adds to the
                              `/var/cpanel/users/user` file.
                            example:
                              custom_feature: 1
                            properties:
                              additionalProperties:
                                description: |-
                                  Whether the feature is enabled.
                                  * `1` - Enabled.
                                  * `0` - Disabled.

                                  **Note:**

                                  The feature's name is the return name.
                                enum:
                                  - 0
                                  - 1
                                example: 1
                                type: integer
                                x-additionalPropertiesName: feature
                            type: object
                          feature_list:
                            description: >-
                              The account's [feature
                              list](https://go.cpanel.net/whmdocs84FeatureManager)
                              name.
                            example: feature_list
                            type: string
                          gid:
                            description: The account's group ID.
                            example: 5678
                            type: integer
                          home:
                            description: The user's home directory.
                            example: /home/user
                            format: path
                            type: string
                          home_directory_links:
                            description: >-
                              Any symlinks to the cPanel account's home
                              directory. An array of one or more home directory
                              symlinks.
                            items:
                              example: symlink
                            type: array
                          ip:
                            description: The account's IPv4 address.
                            example: 192.0.2.0
                            format: ipv4
                            type: string
                          lang:
                            description: The account's language.
                            example: english
                            type: string
                          last_modified:
                            description: >-
                              The most recent modification time of the
                              `/var/cpanel/users/user` file in [Unix time
                              format](https://en.wikipedia.org/wiki/Unix_time).


                              **Note:**


                              `user` represents the cPanel user.
                            example: 1416586493
                            format: unix_timestamp
                            type: integer
                          legacy_backup_enabled:
                            description: |-
                              Whether legacy backups are enabled.
                              * `1` - Enabled.
                              * `0` - Disabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          locale:
                            description: >-
                              The account's default locale, a two-letter
                              [ISO-3166
                              code](http://www.iso.org/iso/country_codes.htm).
                            example: en
                            format: ISO-3166-1 (alpha-2)
                            type: string
                          mailbox_format:
                            description: >-
                              The storage format that the account's mailboxes
                              use.

                              * `maildir`

                              * `mbox`
                            enum:
                              - maildir
                              - mbox
                            example: maildir
                            type: string
                          maximum_addon_domains:
                            description: >-
                              The account's maximum number of addon domains.

                              * `unlimited`

                              * An integer that represents a number of addon
                              domains.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_databases:
                            description: >-
                              The account's maximum number of SQL databases.

                              * `unlimited`

                              * An integer that represents a number of SQL
                              databases.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_defer_fail_percentage:
                            description: >-
                              The [percentage of failed or deferred email
                              messages](https://go.cpanel.net/howtopreventspam)
                              that the account can send per hour before outgoing
                              mail is rate-limited.

                              * `unlimited`

                              * An integer value.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_email_account_disk_quota:
                            description: >-
                              The maximum size, that the account can define when
                              it creates an email account.

                              * `unlimited`

                              * An integer value, in Megabytes (MB).
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_emails_per_hour:
                            description: >-
                              The maximum number of emails that the account can
                              send in one hour.

                              * A positive integer.

                              * `0` or `unlimited` - The account can send an
                              unlimited number of emails.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_ftp_accounts:
                            description: >-
                              The account's maximum number of FTP accounts.

                              * `unlimited`

                              * An integer that represents a number of FTP
                              accounts.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_mail_accounts:
                            description: >-
                              The maximum number of email accounts for the
                              account.

                              * `unlimited`

                              * An integer that represents a number of email
                              accounts.
                            example: '0'
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_mailing_lists:
                            description: >-
                              The account's maximum number of mailing lists.

                              * `unlimited`

                              * An integer that represents a number of mailing
                              lists.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_parked_domains:
                            description: |-
                              The account's maximum number of aliases.
                              * `unlimited`
                              * An integer that represents a number of aliases.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_passenger_apps:
                            description: |-
                              The account's maximum number of Ruby applications.
                                * `unlimited`
                                * An integer that represents a number of applications.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          maximum_subdomains:
                            description: >-
                              The account's maximum number of subdomains.

                              * `unlimited`

                              * An integer that represents a number of
                              subdomains.
                            example: unlimited
                            oneOf:
                              - enum:
                                  - unlimited
                                type: string
                              - minimum: 0
                                type: integer
                          mxcheck:
                            description: Domains and their mail exchanger (MX) type.
                            example:
                              example.com: local
                              example2.com: remote
                            properties:
                              additionalProperties:
                                description: >-
                                  The domain's MX type.


                                  * `local` - Accept mail locally for the
                                  domain.

                                  * `remote` - Do not accept mail locally for
                                  the domain.

                                  * `secondary` - Accept mail until a higher
                                  priority mail server is available.


                                  **Note:**


                                  The return's name is the domain name.
                                enum:
                                  - local
                                  - remote
                                  - secondary
                                example: local
                                type: string
                                x-additionalPropertiesName: domain
                            type: object
                          notify_account_authn_link:
                            description: >-
                              Whether the systems sends a notification when
                              someone links the account to an external
                              authentication account.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_account_authn_link_notification_disabled:
                            description: >-
                              Whether the systems sends a notification when
                              someone disables notifications for external
                              authentication account links.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_account_login:
                            description: >-
                              Whether the system sends a notification when
                              someone logs in to the account.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_account_login_for_known_netblock:
                            description: >-
                              Whether the system sends a notification when a
                              user on a known netblock logs in to the account.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_account_login_notification_disabled:
                            description: >-
                              Whether the system sends a notification when
                              someone disables notifications for account logins.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_autossl_expiry:
                            description: >-
                              Whether the system sends a notification when an
                              AutoSSL certificate expires.

                              * `1` - Notifies.

                              * `0` - Doesn't notify
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_autossl_expiry_coverage:
                            description: >-
                              Whether the system sends a notification when
                              AutoSSL cannot renew a certificate because domains
                              that fail Domain Control Validation (DCV) exist on
                              the current certificate.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_autossl_renewal_coverage:
                            description: >-
                              Whether the system sends a notification when
                              AutoSSL renews a certificate.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_autossl_renewal_coverage_reduced:
                            description: >-
                              Whether the system sends a notification when
                              AutoSSL renews a certificate, but the new
                              certificate lacks at least one domain that the
                              previous certificate secured.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_autossl_renewal_uncovered_domains:
                            description: >-
                              Whether the system sends a notification when
                              AutoSSL renews a certificate, but the new
                              certificate lacks at least one domain that the
                              previous certificate secured.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_bandwidth_limit:
                            description: >-
                              Whether the systems sends a notification when the
                              account reaches its bandwidth quota.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_contact_address_change:
                            description: >-
                              Whether the systems sends a notification when
                              someone changes the contact address for the
                              account.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_contact_address_change_notification_disabled:
                            description: >-
                              Whether the systems sends a notification when
                              someone disables the notification for contact
                              address changes.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_disk_limit:
                            description: >-
                              Whether the systems sends a notification when the
                              account reaches its disk usage limit.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_password_change:
                            description: >-
                              Whether the systems sends a notification when
                              someone changes the account's password.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_password_change_notification_disabled:
                            description: >-
                              Whether the systems sends a notification when
                              someone disables notifications for password
                              changes.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_ssl_expiry:
                            description: >-
                              Whether the systems sends a notification when an
                              SSL certificate on the account expires.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_twofactorauth_change:
                            description: >-
                              Whether the systems sends a notification when the
                              account's Two-Factor Authentication (2FA)
                              credentials change.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          notify_twofactorauth_change_notification_disabled:
                            description: >-
                              Whether the systems sends a notification when
                              someone disables notifications for 2FA.

                              * `1` - Notifies.

                              * `0` - Doesn't notify.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          owner:
                            description: |-
                              The account's owner.
                              * `root`
                              * A reseller account's username.
                              * The account's username.
                            example: root
                            format: username
                            type: string
                          package_extensions:
                            description: The account's package extensions.
                            example:
                              - ext1
                              - ext2
                              - ext3
                            items:
                              type: string
                            type: array
                          plan:
                            description: The account's hosting package.
                            example: packagename
                            type: string
                          pushbullet_access_token:
                            description: The account's Pushbullet access token.
                            example: '1234567890'
                            type: string
                          shell:
                            description: The account's shell.
                            example: /bin/bash
                            format: path
                            type: string
                          spf_enabled:
                            description: |-
                              Whether Sender Policy Framework (SPF) is enabled.
                              * `1` - Enabled.
                              * `0` - Not enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          ssl_default_key_type:
                            description: >-
                              The type of key to generate for the user’s TLS
                              certificates and CSRs.


                              * `system` — The system’s `ssl_default_key_type`
                              value in the [`cpanel.config`
                              file](https://go.cpanel.net/ThecpanelconfigFile).

                              * `rsa-2048` — 2,048-bit RSA.

                              * `rsa-4096` — 4,096-bit RSA.

                              * `ecdsa-prime256v1` — ECDSA prime256v1 (“P-256”).

                              * `ecdsa-secp384r1` — ECDSA secp384r1 (“P-384”).
                            enum:
                              - system
                              - rsa-2048
                              - rsa-4096
                              - ecdsa-prime256v1
                              - ecdsa-secp384r1
                            example: rsa-2048
                            type: string
                          theme:
                            description: The account's current theme.
                            example: jupiter
                            type: string
                          uid:
                            description: The account's user ID on the system.
                            example: 1234
                            type: integer
                          user:
                            description: An existing account's username.
                            example: username
                            type: string
                          utf8_mailbox:
                            description: >-
                              Whether UTF-8-encoded mailbox names are enabled
                              for the cPanel account.

                              * `1` - Enabled.

                              * `0` - Not enabled.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1`  Success

                          * `0`  Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return cPanel account's configuration settings
      tags:
        - Variables
        - Account Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              Variables \
              get_user_information
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/Variables/get_user_information
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file Variables_get_user_information.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/Variables_get_user_information.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/Variables/,
                q/get_user_information/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file Variables_get_user_information.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/Variables_get_user_information.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'Variables',
                'get_user_information'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 86
  /VersionControl/create:
    get:
      description: >-
        This function creates a new Git™ repository on a cPanel account.


        * For more information about support for version control in cPanel &
        WHM, read our

        [Git Version Control](https://go.cpanel.net/GitVersionControl) and

        [Guide to Git](https://go.cpanel.net/GitDeployment) documentation.

        * For a list of configuration changes, repository restrictions, and
        troubleshooting steps,

        read our [Guide to Git - For System
        Administrators](https://go.cpanel.net/GuidetoGitForSystemAdministrators)
        documentation.


        **Important:**


        The system logs errors for this function in the
        `~/.cpanel/logs/vc_TIMESTAMP_git_create.log`

        file, where `TIMESTAMP` represents the time of the error in Unix epoch
        time.
      operationId: VersionControl::create
      parameters:
        - description: The new repository's display name.
          in: query
          name: name
          required: true
          schema:
            example: example
            type: string
        - description: >-
            The absolute path to the directory in which to store the repository,
            relative to the

            user's `home` directory.


            **Note:**


            * If the directory does **not** exist, the system will create it.

            * If the specified directory already contains a repository, the
            system will

            automatically add it to the list of cPanel-managed repositories.

            * This feature enforces several restrictions on repository paths.
            For more information,

            read our [Guide to Git - For System
            Administrators](https://go.cpanel.net/GuidetoGitForSystemAdministrators)
            documentation.
          in: query
          name: repository_root
          required: true
          schema:
            example: /home/user/public_html/example
            format: path
            type: string
        - description: |-
            The repository type.

            * `git` — A [Git](https://git-scm.com/) repository.

            **Note:**

            `git` is the only possible value.
          in: query
          name: type
          required: true
          schema:
            enum:
              - git
            example: git
            type: string
        - content:
            application/json:
              schema:
                example:
                  remote_name: origin
                  url: ssh://clone.domain.com/cloneme
                properties:
                  remote_name:
                    default: origin
                    description: The source repository's name.
                    type: string
                  url:
                    description: The source repository's clone URL.
                    type: string
                required:
                  - url
          description: >-
            A JSON-formatted object containing information about the source
            repository that the

            system will clone.


            **Note:**


            If you do **not** include source repository data, the function
            creates an empty repository.
          in: query
          name: source_repository
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create
                    type: string
                  module:
                    description: The name of the module called.
                    example: VersionControl
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          available_branches:
                            description: >-
                              An list of available branches for the cloned or
                              existing repository, if any exist.
                            example:
                              - master
                              - olive
                            items:
                              type: string
                            type: array
                          branch:
                            description: >-
                              The repository's current branch.


                              * `null` — The system has **not** finished the
                              clone process for

                              the repository, or no local branches exist.
                            example: master
                            nullable: true
                            type: string
                          clone_urls:
                            description: >-
                              An object containing URLs to use to clone the
                              repository.
                            properties:
                              read_only:
                                description: >-
                                  A list of clone URLs with read-only
                                  permissions. The function

                                  returns a blank array if the account does
                                  **not** include the

                                  *Shell Access* setting.


                                  **Important:**


                                  If the server uses a [nonstandard SSH
                                  port](https://go.cpanel.net/firewall),

                                  the system returns a clone URL that includes
                                  the port number.
                                items:
                                  example: https://user@example.com/home/user/example
                                  format: url
                                  type: string
                                type: array
                              read_write:
                                description: >-
                                  A list of of clone URLs with read-write
                                  permissions. The function

                                  returns a blank array if the account does
                                  **not** include the

                                  *Shell Access* setting.


                                  **Important:**


                                  If the server uses a [nonstandard SSH
                                  port](https://go.cpanel.net/firewall),

                                  the system returns a clone URL that includes
                                  the port number.
                                items:
                                  example: ssh://user@example.com/home/user/example
                                  type: string
                                type: array
                            type: object
                          last_update:
                            description: >-
                              Information about the most-recent (HEAD) commit
                              for the current branch.


                              **Note:**


                              * The system may require a large amount of time to
                              clone large

                              repositories. Until this process finishes, HEAD
                              information is unavailable.

                              * `null` is the only possible value.
                            enum:
                              - null
                          name:
                            description: The repository's display name.
                            example: example
                            type: string
                          repository_root:
                            description: >-
                              The absolute path of the directory that contains
                              the repository in the user's `home` directory.
                            example: /home/user/public_html/example
                            format: path
                            type: string
                          source_repository:
                            description: >-
                              A object containing information about a cloned
                              repository's source

                              repository.


                              **Note:**


                              The function **only** returns this object if it
                              will clone a

                              repository.
                            properties:
                              remote_name:
                                description: The source repository's name.
                                example: remote
                                type: string
                              url:
                                description: The source repository's clone URL.
                                example: http://user@domain.com/home/user/domain
                                format: url
                                type: string
                            type: object
                          tasks:
                            description: >-
                              An array of objects containing information about
                              the

                              [Task
                              Queue](https://go.cpanel.net/whmdocsTaskQueueMonitor)

                              system's process that will clone the repository.


                              **Note:**


                              The function **only** returns this value if it
                              will clone a

                              repository.
                            items:
                              properties:
                                action:
                                  description: |-
                                    The task's action.

                                    * `create`

                                    **Note:**

                                    `create` is the only possible value.
                                  enum:
                                    - create
                                  example: create
                                  type: string
                                args:
                                  description: >-
                                    A list of arguments for the

                                    [Task
                                    Queue](https://go.cpanel.net/whmdocsTaskQueueMonitor)

                                    system's process.
                                  properties:
                                    log_file:
                                      description: >-
                                        The absolute path to the process's log
                                        file.


                                        **Note:**


                                        The function **only** returns this value
                                        if the process

                                        generated a log file.
                                      example: >-
                                        /home/username/.cpanel/logs/vc_1234567890.123456_git_deploy.log
                                      type: string
                                    repository_root:
                                      description: >-
                                        The absolute path to the repository's
                                        directory within the user's `home`
                                        directory.
                                      example: /home/user/example
                                      format: path
                                      type: string
                                  type: object
                                id:
                                  description: >-
                                    The [Task
                                    Queue](https://go.cpanel.net/whmdocsTaskQueueMonitor)

                                    system's task ID number.
                                  example: 00000000/5a9ec8dd4c345d
                                  type: string
                                sse_url:
                                  description: >-
                                    The SSE interface to track the progress of
                                    the process.
                                  example: >-
                                    /sse/UserTasks/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                                  type: string
                                subsystem:
                                  description: >-
                                    The [Task
                                    Queue](https://go.cpanel.net/whmdocsTaskQueueMonitor)

                                    subsystem that will handle the task.


                                    * `VersionControl`


                                    **Note:**


                                    `VersionControl` is the only possible value.
                                  enum:
                                    - VersionControl
                                  example: VersionControl
                                  type: string
                              type: object
                            type: array
                          type:
                            description: "The repository type.\n\n* `git` —\_A Git repostiory.\n\n**Note:**\n\n`git` is the only possible value."
                            example: git
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Git repository
      tags:
        - VersionControl
        - Repository Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              VersionControl \
              create \
              type='git' \
              name='example' \
              repository_root='/home/user/public_html/example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/VersionControl/create?type=git&name=example&repository_root=%2fhome%2fuser%2fpublic_html%2fexample
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file VersionControl_create.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/VersionControl_create.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/VersionControl/,
                q/create/,
                {
                    'type' => 'git',
                    'name' => 'example',
                    'repository_root' => '/home/user/public_html/example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file VersionControl_create.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/VersionControl_create.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'VersionControl',
                'create',
                array (
                    'type' => 'git',
                    'name' => 'example',
                    'repository_root' => '/home/user/public_html/example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 72
  /VersionControl/delete:
    get:
      description: >-
        This function deletes a cPanel account's Git™ repository. For more
        information about

        support for version control in cPanel & WHM, read our

        [Git Version Control](https://go.cpanel.net/GitVersionControl) and

        [Guide to Git](https://go.cpanel.net/GitDeployment) documentation.


        **Warning:**


        * When you call this function, the system **permanently deletes** the
        entire contents

        of the specified directory. You **cannot** recover this data after
        deletion.

        * You **cannot** use this function to delete any repositories that do
        not appear in

        the cache of repositories (for example, repositories that contain
        invalid characters or

        exist within cPanel-controlled directories).
      operationId: VersionControl::delete
      parameters:
        - description: >-
            The absolute directory path in the user's `home` directory
            containing the repository to delete.
          in: query
          name: repository_root
          required: true
          schema:
            example: /home/user/example
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete
                    type: string
                  module:
                    description: The name of the module called.
                    example: VersionControl
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete Git repository
      tags:
        - VersionControl
        - Repository Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              VersionControl \
              delete \
              repository_root='/home/user/example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/VersionControl/delete?repository_root=%2fhome%2fuser%2fexample
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file VersionControl_delete.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/VersionControl_delete.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/VersionControl/,
                q/delete/,
                {
                    'repository_root' => '/home/user/example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file VersionControl_delete.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/VersionControl_delete.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'VersionControl',
                'delete',
                array (
                    'repository_root' => '/home/user/example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 72
  /VersionControl/retrieve:
    get:
      description: >-
        This function lists Git™ repositories on a cPanel account. For more
        information

        about support for version control in cPanel & WHM, read our

        [Git Version Control](https://go.cpanel.net/GitVersionControl) and

        [Guide to Git](https://go.cpanel.net/GitDeployment) documentation.


        **Important:**


        * This feature does **not** allow the following characters in repository
        paths:
          ``\ * | " ' < > & @ ` $ { } [ ] ( ) ; ? : = % #``
        * This function does **not** allow repositories that exist in the
        following

        cPanel-controlled directories:

          * `.cpanel`
          * `.htpasswds`
          * `.ssh`
          * `.trash`
          * `access-logs`
          * `cgi-bin`
          * `etc`
          * `logs`
          * `perl5`
          * `mail`
          * `spamassassin`
          * `ssl`
          * `tmp`
          * `var`

        Users can create repositories in some of these directories on the
        command line.

        They may appear in the list of repositories in Gitweb, but users may see
        an error

        message if they try to access them.
      operationId: VersionControl::retrieve
      parameters:
        - description: |-
            A comma-separated list of desired return values.

            **Note:**

            Use a wildcard (`*`) to list all possible return values.
          in: query
          name: fields
          required: false
          schema:
            default: '*'
            example: name,type,branch,last_update
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: retrieve
                    type: string
                  module:
                    description: The name of the module called.
                    example: VersionControl
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects containing repository data.
                        example:
                          - available_branches:
                              - master
                            branch: master
                            clone_urls:
                              read_only:
                                - https://user@example.com/home/user/example
                              read_write:
                                - ssh://user@example.com/home/user/example
                            deployable: 1
                            last_deployment:
                              deployment_date: 1598774400
                              repository_state:
                                author: User Name <user.name@example.com>
                                date: 1598774400
                                identifier: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
                                message: >-
                                  I'm committing some particularly cromulent
                                  code.
                            last_update:
                              author: Jane Doe <jane.doe@example.com>
                              date: 1598774400
                              identifier: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
                              message: I'm committing some particularly cromulent code.
                            name: example
                            repository_root: /home/user/example
                            tasks:
                              - action: create
                                args:
                                  log_file: >-
                                    /home/user/.cpanel/logs/vc_1526305129.123456_git_create.log
                                  repository_root: /home/user/example
                                id: 00000000/5a9ec8dd4c345d
                                sse_url: >-
                                  /sse/UserTasks/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                                subsystem: VersionControl
                            type: git
                          - available_branches:
                              - master
                            branch: master
                            deployable: 1
                            last_update:
                              author: June Due <june.due@example2.com>
                              clone_urls:
                                read_only:
                                  - https://user@example.com/home/user/example
                                read_write:
                                  - ssh://user@example.com/home/user/example
                              date: 1599730200
                              identifier: 4ee0b73ddf78213c41fcc185acfab68ced99046d
                              last_deployment:
                                deployment_date: 1599730200
                                repository_state:
                                  author: User Name <user.name@example.com>
                                  date: 1599730200
                                  identifier: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
                                  message: >-
                                    I'm committing some particularly cromulent
                                    code.
                              message: My code makes more sense, actually.
                              tasks:
                                - action: create
                                  args:
                                    log_file: >-
                                      /home/user/.cpanel/logs/vc_1526305129.123456_git_create.log
                                    repository_root: /home/user/example
                                  id: 00000000/5a9ec8dd4c345d
                                  sse_url: >-
                                    /sse/UserTasks/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                                  subsystem: VersionControl
                            name: example2
                            repository_root: /home/user/example2
                            type: git
                        items:
                          properties:
                            available_branches:
                              description: "A list of available local and remote branches for the cloned\nor existing repository.\n\n* An empty array —\_No branches exist.\n* `null` — The repository is a bare repository."
                              items:
                                type: string
                              nullable: true
                              type: array
                            branch:
                              description: >-
                                The repository's current branch.


                                * `null` — The system has not finished the clone
                                process for the

                                repository, no local branches exist, or the
                                repository is a bare

                                repository.
                              nullable: true
                              type: string
                            clone_urls:
                              description: >-
                                An array of objects containing URLS to use to
                                clone the repository.
                              properties:
                                read_only:
                                  description: >-
                                    A list of clone URLs with read-only
                                    permissions.


                                    This function returns a blank array if the
                                    account does

                                    not include the *Shell Access* setting.


                                    **Important:**


                                    If the server uses a nonstandard SSH port,
                                    the system returns a

                                    clone URL that includes the port number.
                                  items:
                                    type: string
                                  type: array
                                read_write:
                                  description: >-
                                    A list of clone URLs with read-write
                                    permissions.


                                    This function returns a blank array if the
                                    account does

                                    not include the *Shell Access* setting.


                                    **Important:**


                                    If the server uses a nonstandard SSH port,
                                    the system returns a

                                    clone URL that includes the port number.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            deployable:
                              description: "Whether the system could deploy the repository.\n\n* `1` —\_Can deploy.\n* `0` —\_Cannot deploy."
                              enum:
                                - 1
                                - 0
                              type: integer
                            last_deployment:
                              description: >-
                                An object containing information about the
                                commit that the system

                                most recently deployed.


                                **Note:**


                                The system **only** returns this object if
                                deployment information

                                exists.
                              properties:
                                deployment_date:
                                  description: >-
                                    The timestamp for the most-recent
                                    deployment.
                                  format: unix_timestamp
                                  type: integer
                                repository_state:
                                  description: >-
                                    A object containing information about the
                                    state of the repository at the time of the
                                    most recent deployment.
                                  properties:
                                    author:
                                      description: >-
                                        The author's name and email address for
                                        the commit that the system most recently
                                        deployed.
                                      type: string
                                    date:
                                      description: >-
                                        The timestamp for the commit that the
                                        system most recently deployed.
                                      format: unix_timestamp
                                      type: integer
                                    identifier:
                                      description: >-
                                        The identifier (SHA-1 value) for the
                                        commit that the system most recently
                                        deployed.
                                      type: string
                                    message:
                                      description: >-
                                        The commit message for the commit that
                                        the system most recently deployed.
                                      type: string
                                  type: object
                              type: object
                            last_update:
                              description: >-
                                An object containing information about the
                                most-recent (HEAD) commit

                                for the current branch. 


                                **Note:**


                                This object's information resembles the output
                                of the `git log -1`

                                command.


                                **Important:**


                                * If the repository does not include any
                                commits, the function returns

                                a `null` value instead of an object.

                                * The system may require a large amount of time
                                to clone larger

                                repositories. Until this process finishes, HEAD
                                information is

                                unavailable.
                              nullable: true
                              properties:
                                author:
                                  description: >-
                                    The most-recent commit's author's name and
                                    email address.
                                  example: Jane Doe <jane.doe@example.com>
                                  type: string
                                date:
                                  description: The timestamp for the most-recent commit.
                                  example: 1569844800
                                  format: unix_timestamp
                                  type: integer
                                identifier:
                                  description: >-
                                    The identifier (SHA-1 value) for the
                                    most-recent commit.
                                  example: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
                                  type: string
                                message:
                                  description: The commit message.
                                  example: >-
                                    I'm committing some particularly cromulent
                                    code.
                                  type: string
                              type: object
                            name:
                              description: The repository's display name.
                              example: example
                              type: string
                            repository_root:
                              description: >-
                                The absolute directory path in the user's `home`
                                directory containing the repository.
                              example: /home/user/public_html/example
                              format: path
                              type: string
                            source_repository:
                              description: >-
                                An object containing information about the
                                source repository.


                                **Note:**


                                The function **only** returns this object if you
                                cloned a source

                                repository.
                              properties:
                                remote_name:
                                  description: The source repository's name.
                                  example: origin
                                  type: string
                                url:
                                  description: The source repository's clone URL.
                                  example: ssh://clone.domain.com/cloneme
                                  type: string
                              type: object
                            tasks:
                              description: >-
                                An array of objects containing information about
                                the

                                [Task
                                Queue](https://go.cpanel.net/whmdocsTaskQueueMonitor)

                                system's process that will clone the repository.


                                **Note:**


                                The function only returns this value if the
                                clone process is

                                **not** finished.
                              items:
                                properties:
                                  action:
                                    description: |-
                                      The task's action.

                                      * `create` — Create the repository.
                                      * `deploy` — Deploy the repository.
                                    enum:
                                      - create
                                      - deploy
                                    type: string
                                  args:
                                    description: >-
                                      A list of arguments for the Task Queue
                                      system's process.
                                    properties:
                                      log_file:
                                        description: >-
                                          The absolute path to the process's log
                                          file.


                                          **Note:**


                                          The function only returns this value if
                                          the process generated

                                          a log file.
                                        example: >-
                                          /home/username/.cpanel/logs/vc_1234567890.123456_git_deploy.log
                                        format: path
                                        type: string
                                      repository_root:
                                        description: >-
                                          The absolute path to the repository's
                                          directory in the user's `home`
                                          directory.
                                        example: /home/user/example
                                        type: string
                                    type: object
                                  id:
                                    description: The Task Queue system's task ID number.
                                    example: 00000000/5a9ec8dd4c345d
                                    type: string
                                  sse_url:
                                    description: >-
                                      The Secure Server Events (SSE) interface
                                      URL to track the progress of the process.
                                    example: >-
                                      /sse/UserTasks/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                                    type: string
                                  subsystem:
                                    description: >-
                                      The Task Queue subsystem that will handle
                                      the task.


                                      * `VersionControl` is the only possible
                                      value.
                                    enum:
                                      - VersionControl
                                    example: VersionControl
                                    type: string
                                type: object
                              type: array
                            type:
                              description: |-
                                The repository type.

                                * `git` is the only possible value.
                              enum:
                                - git
                              example: git
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Git repositories
      tags:
        - VersionControl
        - Repository Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              VersionControl \
              retrieve
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/VersionControl/retrieve
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file VersionControl_retrieve.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/VersionControl_retrieve.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/VersionControl/,
                q/retrieve/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file VersionControl_retrieve.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/VersionControl_retrieve.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'VersionControl',
                'retrieve'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 72
  /VersionControl/update:
    get:
      description: >-
        This function modifies a Git™ repository's basic settings. For more
        information about support

        for version control in cPanel & WHM, read our

        [Git Version Control](https://go.cpanel.net/GitVersionControl)

        and [Guide to Git](https://go.cpanel.net/GitDeployment) documentation.


        **Note:**


        * This function **only** pulls changes from the remote repository if you
        specify a `branch` value.

        * You **cannot** modify the `type`, `repository_root`, or `url` values
        for existing repositories.

        * You **must** include the `repository_root` parameter in order to
        identify the repository to

        update.

        * All other input parameters are **optional**. Use them to assign the
        **new** values to the

        account. If you do not include a parameter or specify its existing
        value, no change will occur.
      operationId: VersionControl::update
      parameters:
        - description: The absolute directory path that contains the repository to update.
          in: query
          name: repository_root
          required: true
          schema:
            example: /home/user/public_html/example
            format: path
            type: string
        - description: >-
            The new branch to use.


            If you do not specify a value, the function does **not** update this
            parameter.


            **Remember:**


            This function **only** pulls changes from the remote repository if
            you specify

            this value.
          in: query
          name: branch
          required: false
          schema:
            example: master
            type: string
        - description: >-
            The repository's new display name.


            If you do not specify a value, the function does **not** update this
            parameter.
          in: query
          name: name
          required: false
          schema:
            example: example
            type: string
        - content:
            application/json:
              schema:
                example:
                  remote_name: origin
                properties:
                  remote_name:
                    description: >-
                      The source repository's name. If you do not specify a
                      value, the function does **not** update this parameter.
                    type: string
                type: object
          description: >-
            A JSON-encoded object containing information about the source
            repository.


            If you do not specify a value, the function does **not** update this
            parameter.


            **Important:**


            * You **cannot** modify the source repository's URL.

            * You **must** JSON-encode the contents of this object.
          in: query
          name: source_repository
          required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: update
                    type: string
                  module:
                    description: The name of the module called.
                    example: VersionControl
                    type: string
                  result:
                    properties:
                      data:
                        example:
                          available_branches:
                            - master
                          branch: master
                          clone_urls:
                            read_only:
                              - https://user@example.com/home/user/example
                            read_write:
                              - ssh://user@example.com/home/user/example
                          deployable: 1
                          last_deployment:
                            deployment_date: 1569844800
                            repository_state:
                              author: User Name <user.name@example.com>
                              date: 1569844800
                              identifier: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb121
                              message: I'm committing some particularly cromulent code.
                          last_update:
                            author: Jane Doe <jane.doe@example.com>
                            date: 1569844800
                            identifier: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
                            message: I'm committing some particularly cromulent code.
                          name: example
                          repository_root: /home/user/example
                          tasks:
                            - action: create
                              args:
                                repository_root: /home/user/example
                              id: 00000000/5a9ec8dd4c345d
                              subsystem: VersionControl
                          type: git
                        properties:
                          available_branches:
                            description: >-
                              A list of local and remote branches available for
                              the cloned or

                              existing repository.


                              * An empty array, if no branches exist.

                              * `null` — The repository is a bare repository.
                            items:
                              nullable: true
                              type: string
                            type: array
                          branch:
                            description: >-
                              The repository's current branch.


                              * `null` — The system has not finished the clone
                              process for the

                              repository, no local branches exist, or the
                              repository is a bare

                              repository.
                            nullable: true
                            type: string
                          clone_urls:
                            description: >-
                              An object containing the URLs to use to clone the
                              repository.


                              The function returns an empty object if the
                              account does **not**

                              include the *Shell Access* setting.


                              **Important:**


                              If the server uses a nonstandard SSH port, the
                              system returns a

                              clone URL that includes the port number. 
                            properties:
                              read_only:
                                description: >-
                                  A list of clone URLs with read-only
                                  permissions.


                                  This function returns an empty list if the
                                  account does

                                  **not** include the *Shell Access* setting.


                                  **Important:**


                                  If the server uses a nonstandard SSH port, the
                                  system returns a

                                  clone URL that includes the port number.
                                items:
                                  format: url
                                  type: string
                                type: array
                              read_write:
                                description: >-
                                  A list of clone URLs with read-write
                                  permissions.


                                  This function returns an empty list if the
                                  account does

                                  **not** include the *Shell Access* setting.


                                  **Important:**


                                  If the server uses a nonstandard SSH port, the
                                  system returns a

                                  clone URL that includes the port number.
                                items:
                                  type: string
                                type: array
                            type: object
                          deployable:
                            description: "Whether the system could deploy the repository.\n\n* `1` —\_Can deploy.\n* `0` —\_Cannot deploy."
                            enum:
                              - 1
                              - 0
                            type: integer
                          last_deployment:
                            description: >-
                              An object containing information about the commit
                              that the system

                              most recently deployed.


                              **Note:**


                              If no deployment information exists, the function
                              returns a `null` value.
                            nullable: true
                            properties:
                              deployment_date:
                                description: The timestamp for the most recent deployment.
                                format: unix_timestamp
                                type: integer
                              repository_state:
                                description: >-
                                  A object containing information about the
                                  state of the repository at the time of the
                                  most recent deployment.
                                properties:
                                  author:
                                    description: >-
                                      The author's name and email address for
                                      the commit that the system most recently
                                      deployed.
                                    type: string
                                  date:
                                    description: >-
                                      The timestamp for the commit that the
                                      system most recently deployed.
                                    format: unix_timestamp
                                    type: integer
                                  identifier:
                                    description: >-
                                      The identifier (SHA-1 value) for the
                                      commit that the system most recently
                                      deployed.
                                    type: string
                                  message:
                                    description: >-
                                      The commit message for the commit that the
                                      system most recently deployed.
                                    type: string
                                type: object
                            type: object
                          last_update:
                            description: >-
                              An object containing information about the most
                              recent (HEAD) commit for

                              the current branch.


                              **Note:**


                              This object's information resembles the output of
                              the `git log -1`

                              command.


                              **Important:**


                              * If the repository does **not** include any
                              commits, the function

                              returns a `null` value instead of an object.

                              * The system may require a large amount of time to
                              clone larger repositories.

                              Until this process finishes, HEAD information is
                              unavailable.
                            nullable: true
                            properties:
                              author:
                                description: >-
                                  The most recent commit's author name and email
                                  address.
                                type: string
                              date:
                                description: The timestamp for the most recent commit.
                                format: unix_timestamp
                                type: integer
                              identifier:
                                description: >-
                                  The identifier (SHA-1 value) for the most
                                  recent commit.
                                type: string
                              message:
                                description: The commit message.
                                type: string
                            type: object
                          name:
                            description: The repository's display name.
                            type: string
                          repository_root:
                            description: >-
                              The directory path that exists in the user's
                              `home` directory containing the repository.
                            type: string
                          source_repository:
                            description: >-
                              An object containing information about the source
                              repository.


                              **Note:**


                              The function **only** returns this object if you
                              cloned a source

                              repository.
                            properties:
                              remote_name:
                                description: The source repository's name.
                                type: string
                              url:
                                description: The source repository's clone URL.
                                type: string
                            type: object
                          tasks:
                            description: >-
                              An array of objects containing information about
                              the

                              [Task
                              Queue](https://go.cpanel.net/whmdocsTaskQueueMonitor)

                              system's process that will clone the repository.


                              **Note:**


                              The function **only** returns this value if the
                              clone process is

                              not finished.
                            items:
                              properties:
                                action:
                                  description: |-
                                    The task's action.

                                    * `create` — Create the repository.
                                    * `deploy` — Deploy the repository.
                                  enum:
                                    - create
                                    - deploy
                                  type: string
                                args:
                                  description: >-
                                    An object containing arguments for the Task
                                    Queue system's process.
                                  properties:
                                    log_file:
                                      description: >-
                                        The absolute path to the process log
                                        file in the user's

                                        `home` directory.


                                        **Note:**


                                        The function **only** returns this value
                                        if the process

                                        generated a log file.
                                      type: string
                                    repository_root:
                                      description: >-
                                        The repository's absolute directory path
                                        in the user's `home` directory.
                                      type: string
                                  type: object
                                id:
                                  description: The Task Queue system's task ID number.
                                  type: string
                                subsystem:
                                  description: >-
                                    The Task Queue subsystem that will handle
                                    the task.


                                    * `VersionControl`


                                    **Note:**


                                    * `VersionControl` is the only possible
                                    value.
                                  enum:
                                    - VersionControl
                                  type: string
                              type: object
                            type: array
                          type:
                            description: >-
                              The repository type.


                              * `git` — A [Git](https://git-scm.com/)
                              repository.


                              **Note:**


                              * `git` is the only possible value.
                            enum:
                              - git
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update Git repository settings
      tags:
        - VersionControl
        - Repository Management
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              VersionControl \
              update \
              repository_root='/home/user/public_html/example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/VersionControl/update?repository_root=%2fhome%2fuser%2fpublic_html%2fexample
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file VersionControl_update.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/VersionControl_update.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/VersionControl/,
                q/update/,
                {
                    'repository_root' => '/home/user/public_html/example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file VersionControl_update.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/VersionControl_update.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'VersionControl',
                'update',
                array (
                    'repository_root' => '/home/user/public_html/example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 72
  /VersionControlDeployment/create:
    get:
      description: >-
        This function deploys the changes from a cPanel-managed repository.


        **Important:**


        The system logs messages for this function in the
        `~/.cpanel/logs/vc_TIMESTAMP_git_deploy.log` file, where TIMESTAMP
        represents the time in Unix epoch time. The system pulls changes with
        the `--ff-only` option and will only succeed if the branch's HEAD commit
        is up-to-date or Git can fast forward it. For more information about our
        suggested deployment configuration and how users can set it up, read our
        [Guide to Git™ - Deployment](https://go.cpanel.net/GitDeployment)
        documentation. Before deployment, repositories must meet the following
        requirements:
          * A valid checked-in `.cpanel.yml` file in the top-level directory.
          * One or more local or remote branches.
          * A clean working tree.

        If a repository does **not** meet these requirements, the system will
        **not** display deployment information. Also, it will disable deployment
        functionality. For more information, read our [Guide to Git™ -
        Deployment](https://go.cpanel.net/GitDeployment) documentation.
      operationId: VersionControlDeployment::create
      parameters:
        - description: The repository's directory.
          in: query
          name: repository_root
          required: true
          schema:
            example: /home/user/public_html/example
            format: path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create
                    type: string
                  module:
                    description: The name of the module called.
                    example: VersionControlDeployment
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          deploy_id:
                            description: The deployment ID number.
                            example: '12'
                            type: string
                          log_path:
                            description: >-
                              The absolute path to the task's log file
                              vc_TIMESTAMP_git_deploy.log, where TIMESTAMP
                              represents the time in Unix epoch time.
                            example: >-
                              /home/user/.cpanel/logs/vc_1525289545.785367_git_deploy.log
                            format: path
                            type: string
                          repository_root:
                            description: The repository's directory.
                            example: /home/username/example
                            format: path
                            type: string
                          sse_url:
                            description: >-
                              The SSE interface to track the progress of the
                              deployment process.
                            example: >-
                              /sse/UserTasks/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                            format: url-path
                            type: string
                          task_id:
                            description: The Task Queue system's task ID number.
                            example: 00000000/5a9ec8dd4c345d
                            type: string
                          timestamps:
                            description: A hash of timestamps for the deployment process.
                            format: object
                            properties:
                              queued:
                                description: >-
                                  The time at which the deployment process.
                                  entered the task queue.
                                example: '1525289545.16293'
                                type: string
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Create Git deployment task
      tags:
        - VersionControlDeployment
        - Deployment Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              VersionControlDeployment \
              create \
              repository_root='/home/user/public_html/example'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/VersionControlDeployment/create?repository_root=%2fhome%2fuser%2fpublic_html%2fexample
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file VersionControlDeployment_create.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/VersionControlDeployment_create.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/VersionControlDeployment/,
                q/create/,
                {
                    'repository_root' => '/home/user/public_html/example',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file VersionControlDeployment_create.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/VersionControlDeployment_create.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'VersionControlDeployment',
                'create',
                array (
                    'repository_root' => '/home/user/public_html/example',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /VersionControlDeployment/delete:
    get:
      description: "This function deletes a deployment task. For more information, read our\_[Guide to Git - Deployment](https://go.cpanel.net/GitDeployment) documentation."
      operationId: delete
      parameters:
        - description: >-
            The [Task Queue
            system's](https://go.cpanel.net/whmdocsTaskQueueMonitor) task ID
            number.
          in: query
          name: deploy_id
          required: true
          schema:
            example: '13'
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete
                    type: string
                  module:
                    description: The name of the module called.
                    example: VersionControlDeployment
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete Git deployment task
      tags:
        - VersionControlDeployment
        - Deployment Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              VersionControlDeployment \
              delete \
              deploy_id='13'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/VersionControlDeployment/delete?deploy_id=13
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file VersionControlDeployment_delete.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/VersionControlDeployment_delete.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/VersionControlDeployment/,
                q/delete/,
                {
                    'deploy_id' => '13',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file VersionControlDeployment_delete.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/VersionControlDeployment_delete.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'VersionControlDeployment',
                'delete',
                array (
                    'deploy_id' => '13',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /VersionControlDeployment/retrieve:
    get:
      description: >-
        This function retrieves the status of deployment tasks. Before
        deployment, repositories must meet the following requirements:
          * A valid checked-in `.cpanel.yml` file in the top-level directory.
          * One or more local or remote branches.
          * A clean working tree.

        If a repository does **not** meet these requirements, the system will
        **not** display deployment information. Also, it will disable deployment
        functionality. For more information, read our [Guide to Git™ -
        Deployment](https://go.cpanel.net/GitDeployment) documentation.


        **Important:**


        The system logs messages for this function in the
        `~/.cpanel/logs/vc_TIMESTAMP_git_deploy.log` file, where `TIMESTAMP`
        represents the time in Unix epoch time.
      operationId: VersionControlDeployment::retrieve
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: retrieve
                    type: string
                  module:
                    description: The name of the module called.
                    example: VersionControlDeployment
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects containing deployment task data.
                        items:
                          properties:
                            deploy_id:
                              description: The deployment ID number.
                              example: 13
                              type: integer
                            log_path:
                              description: The absolute path to the task's log file.
                              example: >-
                                /home/user/.cpanel/logs/vc_1525289448.759720_git_deploy.log
                              format: path
                              type: string
                            repository_root:
                              description: >-
                                The aboslute path to the cPanel-managed
                                repository directory.
                              example: /home/username/example
                              format: path
                              type: string
                            repository_state:
                              description: >-
                                An object containing information about the
                                repository's state at the time of deployment.
                              properties:
                                author:
                                  description: >-
                                    The most-recent commit's author's name and
                                    email address as they exist in the user's
                                    Git configuration files.
                                  example: Jane Doe <jane.doe@example.com>
                                  type: string
                                branch:
                                  description: The repository's current branch.
                                  example: master
                                  type: string
                                date:
                                  description: >-
                                    The timestamp for the most-recent commit, in
                                    Unix time format.
                                  example: 1410277881
                                  format: unix_timestamp
                                  type: integer
                                identifier:
                                  description: >-
                                    The identifier (SHA-1 value) for the
                                    most-recent commit.
                                  example: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
                                  type: string
                                message:
                                  description: The commit message.
                                  example: This is a commit.
                                  type: string
                              type: object
                            sse_url:
                              description: >-
                                The SSE interface to track the progress of the
                                deployment process.
                              example: >-
                                /sse/UserTasks/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                              format: url-path
                              type: string
                            task_id:
                              description: >-
                                The [Task
                                Queue](https://go.cpanel.net/whmdocsTaskQueueMonitor)
                                system's task ID number.
                              example: 00000000/5aea11e886a5d8
                              type: string
                            timestamps:
                              description: >-
                                An object containing timestamps for the
                                deployment process.
                              properties:
                                active:
                                  description: >-
                                    The time at which the system started the
                                    deployment process, in Unix time format.
                                  example: '1525289448.83553'
                                  type: string
                                canceled:
                                  description: >-
                                    The time at which the system cancelled the
                                    deployment process, in Unix time format.


                                    **Note:**


                                    * The function only returns this value if
                                    the system cancelled the deployment process.

                                    * The system logs messages for this function
                                    in the
                                    `~/.cpanel/logs/vc_TIMESTAMP_git_deploy.log`
                                    file, where `TIMESTAMP` represents the Unix
                                    timestamp.
                                  example: '1525289448.83553'
                                  type: string
                                failed:
                                  description: >-
                                    The time at which the deployment process
                                    failed, in Unix time format.


                                    **Note:**


                                    * The function only returns this value if
                                    the deployment process failed.

                                    * The system logs messages for this function
                                    in the
                                    `~/.cpanel/logs/vc_TIMESTAMP_git_deploy.log`
                                    file, where `TIMESTAMP` represents the Unix
                                    timestamp.
                                  example: '1525289448.83553'
                                  type: string
                                queued:
                                  description: >-
                                    The time at which the deployment process
                                    entered the task queue, in Unix time format.
                                  example: '1525289448.83553'
                                  type: string
                                succeeded:
                                  description: >-
                                    The time at which the deployment process
                                    finished successfully, in Unix time format.


                                    **Note:**

                                     The function only returns this value if the deployment process succeeded.
                                  example: '1525289448.83553'
                                  type: string
                              type: object
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Git deployment task status
      tags:
        - VersionControlDeployment
        - Deployment Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              VersionControlDeployment \
              retrieve
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/VersionControlDeployment/retrieve
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file VersionControlDeployment_retrieve.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/VersionControlDeployment_retrieve.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/VersionControlDeployment/,
                q/retrieve/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file VersionControlDeployment_retrieve.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/VersionControlDeployment_retrieve.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'VersionControlDeployment',
                'retrieve'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 74
  /WebDisk/delete_user:
    get:
      description: >-
        This function deletes a Web Disk account.


        **Important:**


        When you disable the [Web Disk role](https://go.cpanel.net/serverroles),
        the system **disables** this function.
      operationId: WebDisk::delete_user
      parameters:
        - description: >-
            Whether to recursively delete the Web Disk account's folder and all
            of its contents.


            * `1` - Delete the folder for the Web Disk account

            * `0` - Do **not** delete the folder for the Web Disk account.
          in: query
          name: destroy
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 1
            type: integer
        - description: The Web Disk account username.
          in: query
          name: user
          required: true
          schema:
            example: example1@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: delete_user
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebDisk
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Delete Web Disk account
      tags:
        - WebDisk
        - WebDisk Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WebDisk \
              delete_user \
              user='example1@example.com' \
              destroy='1'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WebDisk/delete_user?user=example1%40example.com&destroy=1
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WebDisk_delete_user.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WebDisk_delete_user.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WebDisk/,
                q/delete_user/,
                {
                    'user' => 'example1@example.com',
                    'destroy' => '1',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WebDisk_delete_user.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WebDisk_delete_user.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WebDisk',
                'delete_user',
                array (
                    'user' => 'example1@example.com',
                    'destroy' => '1',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /WebDisk/set_homedir:
    get:
      description: >-
        This function changes the home directory for a Web Disk account.


        **Important:**


        When you disable the [Web Disk role](https://go.cpanel.net/serveroles),
        the system **disables** this function.
      operationId: WebDisk::set_homedir
      parameters:
        - description: The Web Disk account's home directory.
          in: query
          name: homedir
          required: true
          schema:
            example: example1/
            format: path
            type: string
        - description: The Web Disk account username.
          in: query
          name: user
          required: true
          schema:
            example: example1@example.com
            format: email
            type: string
        - description: >-
            Whether to set the Web Disk directory's permissions to public or
            private.


            * `1` - Private (`0700`)

            * `0` - Public (`0755`)
          in: query
          name: private
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_homedir
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebDisk
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update Web Disk home directory location
      tags:
        - WebDisk
        - WebDisk Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WebDisk \
              set_homedir \
              user='example1@example.com' \
              homedir='example1/'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WebDisk/set_homedir?user=example1%40example.com&homedir=example1%2f
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WebDisk_set_homedir.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WebDisk_set_homedir.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WebDisk/,
                q/set_homedir/,
                {
                    'user' => 'example1@example.com',
                    'homedir' => 'example1/',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WebDisk_set_homedir.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WebDisk_set_homedir.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WebDisk',
                'set_homedir',
                array (
                    'user' => 'example1@example.com',
                    'homedir' => 'example1/',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /WebDisk/set_password:
    get:
      description: >-
        This function changes the Web Disk account's password.


        **Important:**


        When you disable the [Web Disk role](https://go.cpanel.net/serverroles),
        the system **disables** this function.
      operationId: WebDisk::set_password
      parameters:
        - description: The Web Disk account's password.
          in: query
          name: password
          required: true
          schema:
            example: 123456luggage
            type: string
        - description: The Web Disk account username.
          in: query
          name: user
          required: true
          schema:
            example: example1@example.com
            format: email
            type: string
        - description: |-
            Whether to enable Digest Authentication.

            * `1` - Enable Digest Authentication.
            * `0` - Disable Digest Authentication.
          in: query
          name: enabledigest
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebDisk
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update Web Disk account password
      tags:
        - WebDisk
        - WebDisk Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WebDisk \
              set_password \
              user='example1@example.com' \
              password='123456luggage'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WebDisk/set_password?user=example1%40example.com&password=123456luggage
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WebDisk_set_password.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WebDisk_set_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WebDisk/,
                q/set_password/,
                {
                    'user' => 'example1@example.com',
                    'password' => '123456luggage',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WebDisk_set_password.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WebDisk_set_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WebDisk',
                'set_password',
                array (
                    'user' => 'example1@example.com',
                    'password' => '123456luggage',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /WebDisk/set_permissions:
    get:
      description: >-
        This function changes the Web Disk home directory's permissions.


        **Important:**


        When you disable the [Web Disk role](https://go.cpanel.net/serverroles),
        the system **disables** this function.
      operationId: set_permissions
      parameters:
        - description: |-
            The Web Disk account's home directory file permissions.

            * `ro` — Read-only permissions.
            * `rw` — Read and write permissions.
          in: query
          name: perms
          required: true
          schema:
            enum:
              - ro
              - rw
            example: rw
            type: string
        - description: The Web Disk account's username.
          in: query
          name: user
          required: true
          schema:
            example: example1@example.com
            format: email
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: set_permissions
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebDisk
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update Web Disk home directory permissions
      tags:
        - WebDisk
        - WebDisk Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WebDisk \
              set_permissions \
              user='example1@example.com' \
              perms='rw'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WebDisk/set_permissions?user=example1%40example.com&perms=rw
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WebDisk_set_permissions.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WebDisk_set_permissions.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WebDisk/,
                q/set_permissions/,
                {
                    'user' => 'example1@example.com',
                    'perms' => 'rw',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WebDisk_set_permissions.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WebDisk_set_permissions.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WebDisk',
                'set_permissions',
                array (
                    'user' => 'example1@example.com',
                    'perms' => 'rw',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 54
  /WebVhosts/list_domains:
    get:
      description: This function lists virtual host names for each domain.
      operationId: WebVhosts::list_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebVhosts
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            domain:
                              description: The domain name.
                              example: example.com
                              format: domain
                              type: string
                            proxy_subdomains:
                              description: >-
                                An array of service subdomains (proxy
                                subdomains) listed for the domain.


                                **Note:**


                                This only returns values when `vhost_is_ssl`
                                equals `1`.
                              example:
                                - cpanel
                                - webmail
                                - autodiscover
                                - whm
                                - webdisk
                              items:
                                type: string
                              nullable: true
                              type: array
                            vhost_is_ssl:
                              description: |-
                                Whether an SSL certificate secures the domain.
                                * `1` - Secured.
                                * `0` - **Not** secured.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            vhost_name:
                              description: The name of the virtual host.
                              example: hostname.example.com
                              format: domain
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return virtual host names for domains
      tags:
        - WebVhosts
        - Virtual Host Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WebVhosts \
              list_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WebVhosts/list_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WebVhosts_list_domains.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WebVhosts_list_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WebVhosts/,
                q/list_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WebVhosts_list_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WebVhosts_list_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WebVhosts',
                'list_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 56
  /WebVhosts/list_ssl_capable_domains:
    get:
      description: >-
        This function lists every domain for which you may purchase an SSL
        certificate. The possible domains for the Secure Sockets Layer (SSL)
        certificate include applicable [service
        subdomains.](https://go.cpanel.net/ServiceProxySubdomains)
      operationId: list_ssl_capable_domains
      parameters:
        - description: >-
            Whether to hide temporary domains from the returned values.

            * `1` — Return an error if the requested domain is a temporary
            domain.

            * `0` — Return all domains, including the temporary domains.

            **Note:**


            If you set this parameter's value to `1` and the requested domain is
            temporary,

            the function will return an error similar to the following example:
            `Domain [example.com] is a temporary

            domain and `hide_temporary_domains` is enabled.`
          in: query
          name: hide_temporary_domains
          required: false
          schema:
            default: 0
            enum:
              - 1
              - 0
            example: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_ssl_capable_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebVhosts
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of objects containing data for a domain.
                        items:
                          properties:
                            domain:
                              description: A valid domain name on the virtual host.
                              example: example.com
                              format: domain
                              type: string
                            is_proxy:
                              description: >-
                                Whether the system automatically created the
                                service subdomain or a user manually created the
                                domain.

                                * `1` - The system automatically created the
                                service subdomain.

                                * `0` - A user manually created the domain.


                                **Note:**


                                If a user manually creates a subdomain that
                                matches a preassigned subdomain (for example,
                                cpanel or whm), then the function returns `0`.
                              enum:
                                - 0
                                - 1
                              example: 1
                              type: integer
                            vhost_name:
                              description: The name of the virtual host or website.
                              example: hostname.example.com
                              format: domain
                              type: string
                          type: object
                        properties: {}
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return domains that allow SSL certificate purchase
      tags:
        - WebVhosts
        - Virtual Host Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WebVhosts \
              list_ssl_capable_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WebVhosts/list_ssl_capable_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WebVhosts_list_ssl_capable_domains.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WebVhosts_list_ssl_capable_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WebVhosts/,
                q/list_ssl_capable_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WebVhosts_list_ssl_capable_domains.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WebVhosts_list_ssl_capable_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WebVhosts',
                'list_ssl_capable_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /WebmailApps/list_webmail_apps:
    get:
      description: >-
        This function lists the account's available webmail clients.


        **Important:**


        When you disable the [Receive Mail
        role](https://go.cpanel.net/howtouseserverprofiles#roles), the system
        **disables** this function. 
      operationId: list_webmail_apps
      parameters:
        - description: The webmail theme.
          in: query
          name: theme
          required: false
          schema:
            default: the server's default theme
            example: jupiter
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_webmail_apps
                    type: string
                  module:
                    description: The name of the module called.
                    example: WebmailApps
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            displayname:
                              description: >-
                                The webmail client name, as it will display in
                                the interface.
                              example: Roundcube
                              type: string
                            icon:
                              description: >-
                                An icon file's path, relative to the
                                `/usr/local/cpanel/base/frontend` directory.
                              example: /webmail/jupiter/images/roundcube_logo.png
                              type: string
                            id:
                              description: The webmail client's ID.
                              example: roundcube
                              type: string
                            url:
                              description: The webmail client's URL.
                              example: /cpsess##########/3rdparty/roundcube/index.php
                              format: url-path
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return available webmail clients
      tags:
        - WebmailApps
        - Webmail Applications
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WebmailApps \
              list_webmail_apps
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WebmailApps/list_webmail_apps
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WebmailApps_list_webmail_apps.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WebmailApps_list_webmail_apps.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WebmailApps/,
                q/list_webmail_apps/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WebmailApps_list_webmail_apps.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WebmailApps_list_webmail_apps.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WebmailApps',
                'list_webmail_apps'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.48
  /WordPressBackup/any_running:
    get:
      description: >-
        This function checks for any active WordPress® site backups on the
        cPanel account.


        **Note:**


        You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.
      operationId: any_running
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: any_running
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressBackup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          any_running:
                            description: |-
                              Whether any backups are in progess.
                              * `1` - Backups are in progress.
                              * `0` - No backups are in progress.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          sites:
                            description: >-
                              An array that contains each site with a backup in
                              progress. The function only populates this array
                              if it is actively processing a backup.
                            items:
                              properties:
                                id:
                                  description: >-
                                    The WordPress site's unique ID.


                                    **Note:**


                                    `null` is the only possible value. We have
                                    not implemented this return.
                                  example: 'null'
                                  nullable: true
                                  type: string
                                site:
                                  description: >-
                                    The WordPress site's URL. The URL does not
                                    contain a protocol prefix.
                                  example: example.com
                                  type: string
                                type:
                                  description: |-
                                    The type of process that is active.

                                    **Note:**

                                    `backup` is the only possible value.
                                  example: backup
                                  type: string
                              type: object
                            type: array
                          sse_url:
                            description: >-
                              The SSE service URL that the system uses to
                              monitor the backup progress. The SSE service URL
                              does not contain a protocol, hostname, or port.
                            example: /sse/WordPressBackup
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * 1 - Success.

                          * 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return all WordPress sites' backup status
      tags:
        - WordPressBackup
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressBackup \
              any_running
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressBackup/any_running
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressBackup_any_running.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_any_running.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressBackup/,
                q/any_running/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressBackup_any_running.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_any_running.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressBackup',
                'any_running'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressBackup/cancel:
    get:
      description: |-
        This function cancels a WordPress® site backup.

        **Note:**

          You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function.
      operationId: cancel
      parameters:
        - description: The WordPress site's URL without the protocol prefix.
          example: example.com
          in: query
          name: site
          required: true
          schema:
            anyOf:
              - example: example.com
                format: domain
              - example: example.com/wordpress
                format: url-path
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: cancel
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressBackup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          ok:
                            description: >-
                              Whether the system cancelled an active backup.

                              * `1` — Backup cancelled.

                              * `0` — Could not cancel the backup or no active
                              backup in progress.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          site:
                            description: The site's URL without the protocol prefix.
                            oneOf:
                              - example: example.com
                                format: domain
                              - example: example.com/wordpress
                                format: url-path
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Stop WordPress site backup
      tags:
        - WordPressBackup
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressBackup \
              cancel \
              site='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressBackup/cancel?site=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressBackup_cancel.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_cancel.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressBackup/,
                q/cancel/,
                {
                    'site' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressBackup_cancel.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_cancel.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressBackup',
                'cancel',
                array (
                    'site' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressBackup/cleanup:
    get:
      description: >-
        This function releases any system resources from a previous WordPress®
        site backup.


        **Note:**


        You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.
      operationId: cleanup
      parameters:
        - description: The WordPress site's URL **without** the protocol prefix.
          in: query
          name: site
          required: true
          schema:
            example: example.com/wordpress
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: cleanup
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressBackup
                    type: string
                  result:
                    properties:
                      data:
                        nullable: true
                        properties:
                          ok:
                            description: |-
                              Whether the system released the system resources.
                              * `1` - Resources released.
                              * `0` - Backup in progress.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          site:
                            description: The site's URL **without** the protocol prefix.
                            example: example.com
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete WordPress backup temporary files
      tags:
        - WordPressBackup
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressBackup \
              cleanup \
              site='example.com/wordpress'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressBackup/cleanup?site=example.com%2fwordpress
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressBackup_cleanup.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_cleanup.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressBackup/,
                q/cleanup/,
                {
                    'site' => 'example.com/wordpress',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressBackup_cleanup.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_cleanup.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressBackup',
                'cleanup',
                array (
                    'site' => 'example.com/wordpress',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressBackup/get_available_backups:
    get:
      description: >-
        This function retrieves a list of available WordPress® site backups of a
        single site.


        **Note:**


        You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.
      operationId: get_available_backups
      parameters:
        - description: The WordPress site's URL **without** the protocol prefix.
          in: query
          name: site
          required: true
          schema:
            example: example.com/wordpress
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_available_backups
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressBackup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          available:
                            description: >-
                              An array of objects containing a list of the
                              WordPress site's backups.
                            items:
                              properties:
                                date:
                                  description: >-
                                    The date and time the system created the
                                    backup.
                                  example: 1539267197000
                                  format: unix_timestamp
                                  type: integer
                                file:
                                  description: >-
                                    The backup's file name with the `tar.zip`
                                    extension.
                                  example: example.com__2018-10-10T10:53:31-0500.tar.gz
                                  type: string
                                path:
                                  description: The absolute path to the backup file.
                                  example: >-
                                    /home/example/wordpress-backups/example.com__2018-10-10T10:53:31-0500.tar.gz
                                  type: string
                                site:
                                  description: >-
                                    The site's URL **without** the protocol
                                    prefix.
                                  example: example.com
                                  type: string
                              type: object
                            nullable: true
                            type: array
                          dir:
                            description: The absolute path to the backup directory.
                            example: /home/example/wordpress-backups
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress site backups
      tags:
        - WordPressBackup
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressBackup \
              get_available_backups \
              site='example.com/wordpress'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressBackup/get_available_backups?site=example.com%2fwordpress
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressBackup_get_available_backups.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_get_available_backups.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressBackup/,
                q/get_available_backups/,
                {
                    'site' => 'example.com/wordpress',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressBackup_get_available_backups.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_get_available_backups.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressBackup',
                'get_available_backups',
                array (
                    'site' => 'example.com/wordpress',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressBackup/is_running:
    get:
      description: >-
        This function checks for an active WordPress® site backup.


        **Note:**


        You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.
      operationId: is_running
      parameters:
        - description: The WordPress site's URL **without** `http://`.
          in: query
          name: site
          required: true
          schema:
            example: |-
              example.com

              example.com/wordpress
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_running
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressBackup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          action_id:
                            description: The unique ID of the backup process.
                            example: example.com__2018-10-10T10:53:31-0500
                            nullable: true
                            type: string
                          is_running:
                            description: |-
                              Whether a backup is active.
                              * `1` - Backup in progress.
                              * `0` - No backup in progress.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress site backup status
      tags:
        - WordPressBackup
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressBackup \
              is_running \
              site='example.com

            example.com/wordpress'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressBackup/is_running?site=example.com%0a%0aexample.com%2fwordpress
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressBackup_is_running.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_is_running.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressBackup/,
                q/is_running/,
                {
                    'site' => 'example.com

            example.com/wordpress',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressBackup_is_running.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_is_running.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressBackup',
                'is_running',
                array (
                    'site' => 'example.com

            example.com/wordpress',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressBackup/start:
    get:
      description: >-
        This function starts a single WordPress® site backup.


        **Note:**


        You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.
      operationId: start
      parameters:
        - description: The WordPress site's URL without the protocol prefix.
          example: example.com
          in: query
          name: site
          required: true
          schema:
            anyOf:
              - example: example.com/wordpress
                format: url-path
              - example: example.com
                format: domain
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: start
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressBackup
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          backup_id:
                            description: The unique ID of the backup process.
                            example: example.com__2018-10-10T10:53:31-0500
                            type: string
                          site:
                            description: >-
                              The WordPress site's URL without the protocol
                              prefix.
                            oneOf:
                              - example: example.com
                                format: domain
                              - example: example.com/wordpress
                                format: url-path
                            type: string
                          sse_url:
                            description: >-
                              The SSE path **without** the protocol, hostname,
                              or port that the system uses to monitor the backup
                              progress.
                            example: /sse/WordPressBackup
                            format: url-path
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Backup WordPress site
      tags:
        - WordPressBackup
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressBackup \
              start \
              site='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressBackup/start?site=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressBackup_start.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_start.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressBackup/,
                q/start/,
                {
                    'site' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressBackup_start.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressBackup_start.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressBackup',
                'start',
                array (
                    'site' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressInstanceManager/cancel_scan:
    get:
      description: >-
        This function cancels a scan that you start with the
        `WordPressInstanceManager::start_scan` function.


        **Note:**

          You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function.
      operationId: cancel_scan
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: cancel_scan
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        description: |-
                          Whether the system cancelled the scan.

                          * `1` - Cancelled.
                          * `0` - **Not** cancelled.
                        enum:
                          - 0
                          - 1
                        example: 0
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Stop WordPress site scan
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              cancel_scan
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/cancel_scan
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressInstanceManager_cancel_scan.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_cancel_scan.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/cancel_scan/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressInstanceManager_cancel_scan.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_cancel_scan.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'cancel_scan'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 2.0
  /WordPressInstanceManager/change_admin_password:
    get:
      description: >-
        This function updates a WordPress® cPAddon instance's administrator
        password.


        **Note:**

          You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function.
      operationId: change_admin_password
      parameters:
        - description: |-
            The cPAddon instance's unique ID.

            **Note:**

             You can retrieve an instance ID with the `get_instances` function.
          in: query
          name: id
          required: true
          schema:
            example: cPanel__Blogs__WordPressX.0.1491917088
            type: string
        - description: The cPAddon instance's new administrator password.
          in: query
          name: password
          required: true
          schema:
            example: luggage12345
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: change_admin_password
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Update WordPress site admin password
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              change_admin_password \
              id='cPanel__Blogs__WordPressX.0.1491917088' \
              password='luggage12345'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/change_admin_password?id=cPanel__Blogs__WordPressX.0.1491917088&password=luggage12345
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            WordPressInstanceManager_change_admin_password.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_change_admin_password.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/change_admin_password/,
                {
                    'id' => 'cPanel__Blogs__WordPressX.0.1491917088',
                    'password' => 'luggage12345',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            WordPressInstanceManager_change_admin_password.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_change_admin_password.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'change_admin_password',
                array (
                    'id' => 'cPanel__Blogs__WordPressX.0.1491917088',
                    'password' => 'luggage12345',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 1.0
  /WordPressInstanceManager/cleanup_scan:
    get:
      description: "This function cleans up the scan log file after you complete a scan with the WordPressInstanceManager::start_scan function. To read more information about the complete scan process, read our\_UAPI Functions - WordPressInstanceManager::start_scan documentation.\n\n**Note:**\n\n  You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function."
      operationId: cleanup_scan
      parameters:
        - description: The scan’s unique ID.
          in: query
          name: guid
          required: true
          schema:
            example: B3A27B96-51F7-11E8-92E3-CC90C4F823F0
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: cleanup_scan
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        default: null
                        nullable: true
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                type: object
          description: HTTP Request was successful.
      summary: Remove scan log after completed scan
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              cleanup_scan \
              guid='B3A27B96-51F7-11E8-92E3-CC90C4F823F0'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/cleanup_scan?guid=B3A27B96-51F7-11E8-92E3-CC90C4F823F0
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressInstanceManager_cleanup_scan.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_cleanup_scan.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/cleanup_scan/,
                {
                    'guid' => 'B3A27B96-51F7-11E8-92E3-CC90C4F823F0',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressInstanceManager_cleanup_scan.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_cleanup_scan.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'cleanup_scan',
                array (
                    'guid' => 'B3A27B96-51F7-11E8-92E3-CC90C4F823F0',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 2.0
  /WordPressInstanceManager/configure_autoupdate:
    get:
      description: >-
        This function configures a WordPress cPAddon instance's automatic
        updates settings. If you enable automatic updates for a legacy WordPress
        cPAddon instance, the function will convert it to use the RPM-based
        WordPress cPAddon.


        **Important:**

          This function changes the instance's automatic update setting in the `wp-config.php` file. Before you run this function, you should verify that a filter does **not** exist for the automatic update settings. Use the `get_instance_by_id` function and view the `autoupdate.core.has_filter` return to determine if a filter exists.

        **Note:**

          You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function.
      operationId: configure_autoupdate
      parameters:
        - description: |-
            Whether to enable automatic updates for major releases.
            * `1` - Enable.
            * `0` - Disable.
          in: query
          name: autoupdate.core.major
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            Whether to enable automatic updates for minor releases.
            * `1` - Enable.
            * `0` - Disable.
          in: query
          name: autoupdate.core.minor
          required: true
          schema:
            enum:
              - 0
              - 1
            example: 0
            type: integer
        - description: |-
            The cPAddon instance's unique ID.

            **Note:**

             You can retrieve an instance ID with the `get_instances` function.
          in: query
          name: id
          required: true
          schema:
            example: cPanel__Blogs__WordPressX.0.1491917088
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: configure_autoupdate
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          after:
                            description: >-
                              An object that contains the instance's information
                              after conversion.
                            properties:
                              addon_config:
                                description: >-
                                  The WordPress instance's configuration file
                                  location.
                                example: >-
                                  /home/example/.cpaddons/cPanel::Blogs::WordPressX.0.yaml
                                format: path
                                type: string
                              addon_name:
                                description: >-
                                  The converted instance's cPAddon name.


                                  **Note:**


                                  `cPanel::Blogs::WordPressX` is the only
                                  possible value.
                                enum:
                                  - cPanel::Blogs::WordPressX
                                example: cPanel::Blogs::WordPressX
                                type: string
                              addon_type:
                                description: |-
                                  The converted instance's cPAddon type.

                                  **Note:**

                                  `modern` is the only possible value.
                                enum:
                                  - modern
                                example: modern
                                type: string
                              admin_url:
                                description: >-
                                  The converted instance's administrator login
                                  URL.
                                example: example.com/wordpress-41/wp-login.php
                                format: url-path
                                type: string
                              admin_username:
                                description: The instance's administrator username.
                                example: wpadmin
                                type: string
                              available_version:
                                description: The latest WordPress version.
                                example: 4.9.1
                                type: string
                              current_version:
                                description: The WordPress instance's installed version.
                                example: 4.9.1
                                type: string
                              db_name:
                                description: The converted instance's database name.
                                example: example_wp1
                                type: string
                              db_prefix:
                                description: The converted instance's database prefix.
                                example: example
                                type: string
                              db_server:
                                description: >-
                                  The converted instance's database server
                                  network path.
                                example: localhost
                                type: string
                              db_type:
                                description: The converted instance's database type.
                                example: mysql
                                type: string
                              db_username:
                                description: The converted instance's database username.
                                example: example_wp1
                                type: string
                              domain:
                                description: The converted instance's domain name.
                                example: example.com
                                format: domain
                                type: string
                              full_path:
                                description: The instance's full installation path.
                                example: /home/example/public_html/wordpress-41
                                format: path
                                type: string
                              homedir:
                                description: The cPanel account's home directory.
                                example: /home/example
                                format: path
                                type: string
                              id:
                                description: The converted instance's unique ID.
                                example: cPanel__Blogs__WordPress.1.1509732223
                                type: string
                              initial_install_version:
                                description: The instance's original installation version.
                                example: '4.1'
                                type: string
                              migrated_from:
                                description: >-
                                  The instance's original installation cPAddon
                                  name.
                                example: cPanel::Blogs::WordPress
                                type: string
                              migrated_on:
                                description: The time the system converted the instance.
                                example: 1513965986
                                format: unix_timestamp
                                type: integer
                              rel_path:
                                description: >-
                                  The relative file path to the converted
                                  instance's document root.
                                example: wordpress-41
                                format: path
                                type: string
                              site_url:
                                description: The converted instance's URL.
                                example: example.com/wordpress-41
                                format: url-path
                                type: string
                            type: object
                          before:
                            description: >-
                              A object that contains the instance's information
                              before conversion.
                            properties:
                              addon_config:
                                description: >-
                                  The WordPress instance's configuration file
                                  location.
                                example: >-
                                  /home/example/.cpaddons/cPanel::Blogs::WordPressX.0.yaml
                                format: path
                                type: string
                              addon_name:
                                description: The instance's cPAddon name.
                                example: cPanel::Blogs::WordPress
                                type: string
                              addon_type:
                                description: |-
                                  The instance's cPAddon type.

                                  **Note:**

                                  `legacy` is this only possible value.
                                enum:
                                  - legacy
                                example: legacy
                                type: string
                              admin_url:
                                description: The instance's administrator login URL.
                                example: example.com/wordpress-41/wp-login.php
                                format: url-path
                                type: string
                              admin_username:
                                description: The instance's administrator username.
                                example: wpadmin
                                type: string
                              available_version:
                                description: The latest WordPress version.
                                example: 4.9.1
                                type: string
                              current_version:
                                description: The WordPress instance's installed version.
                                example: 4.9.1
                                type: string
                              db_name:
                                description: The instance's database name.
                                example: example_wp1
                                type: string
                              db_prefix:
                                description: The instance's database prefix.
                                example: example
                                type: string
                              db_server:
                                description: The instance's database server network path.
                                example: localhost
                                type: string
                              db_type:
                                description: The instance's database type.
                                example: mysql
                                type: string
                              db_username:
                                description: The instance's database username.
                                example: example_wp1
                                type: string
                              domain:
                                description: The instance's domain name.
                                example: example.com
                                format: domain
                                type: string
                              full_path:
                                description: The instance's full installation path.
                                example: /home/example/public_html/wordpress-41
                                format: path
                                type: string
                              homedir:
                                description: The cPanel account's home directory.
                                example: /home/example
                                format: path
                                type: string
                              id:
                                description: The instance's unique ID.
                                example: cPanel__Blogs__WordPress.1.1509732223
                                type: string
                              initial_install_version:
                                description: The instance's original installation version.
                                example: '4.1'
                                type: string
                              rel_path:
                                description: >-
                                  The relative file path to the instance's
                                  document root.
                                example: wordpress-41
                                format: path
                                type: string
                              site_url:
                                description: The instance's URL.
                                example: example.com/wordpress-41
                                format: url-path
                                type: string
                            type: object
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Update WordPress site automatic update settings
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              configure_autoupdate \
              id='cPanel__Blogs__WordPressX.0.1491917088' \
              autoupdate.core.major='0' \
              autoupdate.core.minor='0'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/configure_autoupdate?id=cPanel__Blogs__WordPressX.0.1491917088&autoupdate.core.major=0&autoupdate.core.minor=0
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            WordPressInstanceManager_configure_autoupdate.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_configure_autoupdate.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/configure_autoupdate/,
                {
                    'id' => 'cPanel__Blogs__WordPressX.0.1491917088',
                    'autoupdate.core.major' => '0',
                    'autoupdate.core.minor' => '0',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            WordPressInstanceManager_configure_autoupdate.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_configure_autoupdate.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'configure_autoupdate',
                array (
                    'id' => 'cPanel__Blogs__WordPressX.0.1491917088',
                    'autoupdate.core.major' => '0',
                    'autoupdate.core.minor' => '0',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 1.1
  /WordPressInstanceManager/get_api_version:
    get:
      description: |-
        This function retrieves the WordPress Manager plugin's version.

        **Note:**

          You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function.
      operationId: get_api_version
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_api_version
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          version:
                            description: The WordPress Manager plugin’s version.
                            example: 1.0.1-0
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress Manager plugin version
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              get_api_version
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/get_api_version
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressInstanceManager_get_api_version.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_api_version.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/get_api_version/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            WordPressInstanceManager_get_api_version.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_api_version.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'get_api_version'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 1.1
  /WordPressInstanceManager/get_instance_by_id:
    get:
      description: >-
        This function retrieves a WordPress® instance's configuration.


        **Note:**


        * You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.

        * This function retrieves some data that the system stored during the
        WordPress installation. That data may not reflect the most recent user
        changes.
      operationId: get_instance_by_id
      parameters:
        - description: |-
            The WordPress instance's unique ID.

            **Note:**

             You can retrieve an instance ID with the `get_instances` function.
          in: query
          name: id
          required: true
          schema:
            example: cPanel__Blogs__WordPressX.0.1528208546
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_instance_by_id
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          addon_config:
                            description: >-
                              The WordPress instance's configureation absolute
                              file path location.
                            example: >-
                              /home/example/.cpaddons/cPanel::Blogs::WordPressX.0.yaml
                            format: path
                            type: string
                          addon_name:
                            description: >-
                              The WordPress cPAddon used to install the
                              instance.

                              * `cPanel::Blogs::WordPress`

                              * `cPanel::Blogs::WordPressX`

                              * `cPanel::Blogs::WordPressUnmanaged`
                            enum:
                              - cPanel::Blogs::WordPress
                              - cPanel::Blogs::WordPressX
                              - cPanel::Blogs::WordPressUnmanaged
                            example: cPanel::Blogs::WordPressX
                            type: string
                          addon_type:
                            description: >-
                              The WordPress instance's installation method.

                              * `modern` — Installed by RPM-managed WordPress
                              cPAddon.

                              * `legacy` — Installed by legacy cPAddon.

                              * `unmanaged` — Installed by third-party tool or
                              the WordPress installer.
                            enum:
                              - modern
                              - legacy
                              - unmanaged
                            example: modern
                            type: string
                          admin_url:
                            description: >-
                              The URL to the instance's administration
                              interface.
                            example: example.com/wp-login.php
                            format: url-path
                            type: string
                          admin_username:
                            description: >-
                              The administrator username configured at the time
                              of installation.
                            example: admin
                            type: string
                          admins:
                            description: A list of the WordPress instance's administrators.
                            items:
                              properties:
                                ID:
                                  description: >-
                                    The user's automatically generated
                                    identifier.
                                  example: 1
                                  minimum: 1
                                  type: integer
                                display_name:
                                  description: The user's display name.
                                  example: admin
                                  type: string
                                user_email:
                                  description: The user's email address.
                                  example: admin@example.com
                                  format: email
                                  type: string
                                user_login:
                                  description: The user's login name.
                                  example: admin
                                  type: string
                                user_nicename:
                                  description: >-
                                    The user's simplified username, which you
                                    can use as an HTML ID or similar.
                                  example: admin
                                  type: string
                                user_status:
                                  description: |-
                                    The user's verified status.
                                    * `1` — Verified.
                                    * `0` — Unverified.
                                  enum:
                                    - 0
                                    - 1
                                  example: 0
                                  type: integer
                              type: object
                            type: array
                          autoupdate:
                            description: |-
                              Whether the user enabled automatic updates.
                              * `true` — Enabled.
                              * `false` — Disabled.
                            example: true
                            type: boolean
                          autoupdate.core.has_filter:
                            description: >-
                              Whether one of more filters modify the core
                              autoupdate settings.

                              * `true` — Filter(s) applied.

                              * `false` — No filters applied.


                              **Note**


                              Typically, plugins apply filters to the autoupdate
                              settings.
                            example: false
                            type: boolean
                          autoupdate.core.major:
                            description: >-
                              Whether the user enabled automatic updates for
                              major releases.

                              * `true` — Enabled.

                              * `false` — Disabled.
                            example: false
                            type: boolean
                          autoupdate.core.minor:
                            description: >-
                              Whether the user enabled automatic updates for
                              minor releases.

                              * `true` — Enabled.

                              * `false` — Disabled.
                            example: true
                            type: boolean
                          available_version:
                            description: The lastest WordPress instance's version.
                            example: 4.9.6
                            type: string
                          created_on:
                            description: The WordPress instance's installation date.
                            example: 1528208546
                            format: unix_timestamp
                            type: integer
                          current_version:
                            description: The WordPress instance's version.
                            example: 4.9.5
                            type: string
                          db_name:
                            description: A database name.
                            example: example_wp2
                            type: string
                          db_prefix:
                            description: A database table prefix.
                            example: wp
                            type: string
                          db_server:
                            description: The WordPress instance's database server hostname.
                            example: localhost
                            type: string
                          db_type:
                            description: The WordPress instance's database type.
                            enum:
                              - mysql
                            example: mysql
                            type: string
                          db_username:
                            description: The WordPress instance's database username.
                            example: example_wp
                            type: string
                          domain:
                            description: The WordPress instance's installation domain.
                            example: example.com
                            format: domain
                            type: string
                          full_path:
                            description: >-
                              The WordPress instance's full installation
                              absolute filepath.
                            example: /home/example/public_html
                            format: path
                            type: string
                          homedir:
                            description: The cPanel account's home directory.
                            example: /home/example
                            format: path
                            type: string
                          id:
                            description: The WordPress instance's unique identifier.
                            example: cPanel__Blogs__WordPressX.0.1528208546
                            type: string
                          initial_install_version:
                            description: The WordPress instance's version at installation.
                            example: 4.7.2
                            type: string
                          recent:
                            description: >-
                              Whether the system added the WordPress instance in
                              the last 24 hours.

                              * `1` — Added recently.

                              * `0` — Added previously.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                          rel_path:
                            description: >-
                              The WordPress instance's installation path,
                              relative to the damin's document root.


                              **Note:**


                              This function returns an empty value if the
                              relative path is the document root.
                            example: ' '
                            format: path
                            type: string
                          site_url:
                            description: The WordPress instance's home page URL.
                            example: example.com/wordpress
                            format: url-path
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress site settings
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              get_instance_by_id \
              id='cPanel__Blogs__WordPressX.0.1528208546'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/get_instance_by_id?id=cPanel__Blogs__WordPressX.0.1528208546
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            WordPressInstanceManager_get_instance_by_id.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_instance_by_id.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/get_instance_by_id/,
                {
                    'id' => 'cPanel__Blogs__WordPressX.0.1528208546',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            WordPressInstanceManager_get_instance_by_id.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_instance_by_id.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'get_instance_by_id',
                array (
                    'id' => 'cPanel__Blogs__WordPressX.0.1528208546',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 1.0
  /WordPressInstanceManager/get_instances:
    get:
      description: >-
        This function lists an account's WordPress® instances.


        **Note:**


        * You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.

        * This function retrieves data that the system stored during the
        WordPress installation. That data may not reflect the most recent user
        changes.
      operationId: get_instances
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_instances
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          errors:
                            description: >-
                              This array contains the errors that the system
                              experienced while it retrieved the instances.
                            items:
                              type: string
                            type: array
                          instances:
                            description: >-
                              This array of objects contains the WordPress
                              instance information.
                            items:
                              properties:
                                addon_config:
                                  description: >-
                                    The WordPress instance's configuration file
                                    location.
                                  example: >-
                                    /home/example/.cpaddons/cPanel::Blogs::WordPressX.0.yaml
                                  format: path
                                  type: string
                                addon_name:
                                  description: >-
                                    The WordPress cPAddon that installed the
                                    instance.

                                    * `cPanel::Blogs::WordPress`

                                    * `cPanel::Blogs::WordPressX`

                                    * `cPanel::Blogs::WordPressUnmanaged`
                                  enum:
                                    - cPanel::Blogs::WordPress
                                    - cPanel::Blogs::WordPressX
                                    - cPanel::Blogs::WordPressUnmanaged
                                  example: cPanel::Blogs::WordPressX
                                  type: string
                                addon_type:
                                  description: >-
                                    The WordPress instance's installation
                                    method.

                                    * `modern` — Installed by RPM-managed
                                    WordPress cPAddon.

                                    * `legacy` — Installed by legacy cPAddon.

                                    * `unmanaged` — Installed by third-party
                                    tool or the WordPress installer.
                                  enum:
                                    - modern
                                    - legacy
                                    - unmanaged
                                  example: modern
                                  type: string
                                admin_url:
                                  description: >-
                                    The URL to the instance's administration
                                    interface.
                                  example: example.com/wp-login.php
                                  format: url-path
                                  type: string
                                admin_username:
                                  description: >-
                                    The administrator username the installer
                                    created at the time of installation.
                                  example: admin
                                  type: string
                                available_version:
                                  description: This return is unused.
                                  example: null
                                  nullable: true
                                  type: string
                                created_on:
                                  description: The WordPress instance's installation date.
                                  example: 1528208546
                                  format: unix_timestamp
                                  type: integer
                                current_version:
                                  description: This return is unused.
                                  example: null
                                  nullable: true
                                  type: string
                                db_name:
                                  description: The WordPress instance's database name.
                                  example: example_wp
                                  type: string
                                db_prefix:
                                  description: The WordPress instance's database prefix.
                                  example: wp
                                  type: string
                                db_server:
                                  description: >-
                                    The WordPress instance's database server
                                    hostname.
                                  example: localhost
                                  type: string
                                db_type:
                                  description: |-
                                    The WordPress instance's database type.

                                    **Note**
                                    `mysql` is the only possible value.
                                  enum:
                                    - mysql
                                  example: mysql
                                  type: string
                                db_username:
                                  description: The WordPress instance's database username.
                                  example: example_wp
                                  type: string
                                domain:
                                  description: The WordPress instance's domain.
                                  example: example.com
                                  format: domain
                                  type: string
                                full_path:
                                  description: >-
                                    The WordPress instance's full installation
                                    path.
                                  example: /home/example/public_html
                                  format: path
                                  type: string
                                homedir:
                                  description: The cPanel account's home directory.
                                  example: /home/example
                                  format: path
                                  type: string
                                id:
                                  description: The WordPress instance's unique identifier.
                                  example: cPanel__Blogs__WordPressX.0.1528208546
                                  type: string
                                import_guid:
                                  description: >-
                                    The imported WordPress instance's unique
                                    identifier.
                                  example: 8AF1767E-68CD-11E8-90D1-96B06D626D05
                                  type: string
                                imported_on:
                                  description: The WordPress instance's import date.
                                  example: 1528209264
                                  format: unix_timestamp
                                  type: integer
                                initial_install_version:
                                  description: >-
                                    The WordPress instance's version number at
                                    installation.
                                  example: 4.9.6
                                  type: string
                                migrated_from:
                                  description: >-
                                    The cPAddon that the system migrated the
                                    instance from.
                                  example: cPanel::Blogs::WordPress
                                  type: string
                                migrated_on:
                                  description: >-
                                    The timestamp when the system migrated the
                                    instance from legacy to modern WordPress
                                    cPAddon.
                                  example: 1528209264
                                  format: unix_timestamp
                                  type: integer
                                recent:
                                  description: >-
                                    Whether the system added the WordPress
                                    instance in the last 24 hours.

                                    * `1` — Added recently.

                                    * `0` — Added previously.
                                  enum:
                                    - 0
                                    - 1
                                  example: 1
                                  type: integer
                                rel_path:
                                  description: >-
                                    The WordPress instance's installation path.


                                    **Note**

                                    This function returns an empty value if the
                                    relative path is the document root.
                                  example: ' '
                                  format: path
                                  type: string
                                site_url:
                                  description: The WordPress instance's home page URL.
                                  example: example.com
                                  format: url-path
                                  type: string
                              type: object
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` — Success.

                          - `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress sites
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              get_instances
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/get_instances
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressInstanceManager_get_instances.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_instances.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/get_instances/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressInstanceManager_get_instances.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_instances.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'get_instances'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 1.0
  /WordPressInstanceManager/get_latest_wordpress_version_from_wordpress_org:
    get:
      description: >-
        This function returns the available WordPress® updates from
        wordpress.org.


        **Note:**

          You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function.
      operationId: get_latest_wordpress_version_from_wordpress_org
      parameters:
        - description: >-
            The length of time in seconds to cache the database between requests
            to wordpress.org.
          in: query
          name: cache_time
          required: false
          schema:
            default: 86400
            example: 3600
            minimum: 0
            type: integer
        - description: |-
            Whether to force a reload from the remote API. Otherwise, the
            function returns information stored in local cache.
            * `1` — Force reload
            * `0` — Read local cashe.
          in: query
          name: force
          required: false
          schema:
            default: 0
            enum:
              - 0
              - 1
            example: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_latest_wordpress_version_from_wordpress_org
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          offers:
                            description: >-
                              This array contains the returned value from
                              [wordpress.org's](https://wordpress.org/) Version
                              Check API.


                              **Note:**

                               For additional information about the returned values, read [WordPress's Version Check API](https://codex.wordpress.org/WordPress.org_API) documentation.
                            items:
                              properties:
                                current: {}
                                download: {}
                                locale: {}
                                mysql_version: {}
                                new_bundled: {}
                                packages:
                                  properties:
                                    full: {}
                                    new_bundled: {}
                                    no_content: {}
                                    partial: {}
                                    rollback: {}
                                  type: object
                                partial_version: {}
                                php_version: {}
                                response: {}
                                version: {}
                              type: object
                            type: array
                          translations:
                            items:
                              type: string
                            type: array
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: |-
                          - 1 - Success
                          - 0 - Failed: Check the errors field for more details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return latest wordpress.org updates
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              get_latest_wordpress_version_from_wordpress_org
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/get_latest_wordpress_version_from_wordpress_org
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            WordPressInstanceManager_get_latest_wordpress_version_from_wordpress_org.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_latest_wordpress_version_from_wordpress_org.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/get_latest_wordpress_version_from_wordpress_org/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            WordPressInstanceManager_get_latest_wordpress_version_from_wordpress_org.live.php
            and put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_latest_wordpress_version_from_wordpress_org.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'get_latest_wordpress_version_from_wordpress_org'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: Word Press Instance Manager 1.0
  /WordPressInstanceManager/get_scan_results:
    get:
      description: "This function checks the status of a completed scan and reports the results. To find more information about the scan process, read our\_UAPI documentation for `WordPressInstanceManager::start_scan`.\n\n**Note:**\n\n  You **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function."
      operationId: get_scan_results
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_scan_results
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          instances:
                            description: >-
                              An array of objects that contains the WordPress
                              instance information.
                            items:
                              properties:
                                addon_config:
                                  description: >-
                                    The WordPress instance's configuration file
                                    location.
                                  example: >-
                                    /home/example/.cpaddons/cPanel::Blogs::WordPressX.0.yaml
                                  type: string
                                addon_name:
                                  description: >-
                                    The WordPress cPAddon that installed the
                                    instance.

                                    * `cPanel::Blogs::WordPress`

                                    * `cPanel::Blogs::WordPressX`

                                    * `cPanel::Blogs::WordPressUnmanaged`
                                  enum:
                                    - cPanel::Blogs::WordPress
                                    - cPanel::Blogs::WordPressX
                                    - cPanel::Blogs::WordPressUnmanaged
                                  example: cPanel::Blogs::WordPressX
                                  type: string
                                addon_type:
                                  description: >-
                                    The WordPress instance's installation
                                    method.

                                    * `modern` — Installed by RPM-managed
                                    WordPress cPAddon.

                                    * `legacy` — Installed by legacy cPAddon.

                                    * `unmanaged` — Installed by third-party
                                    tool or the WordPress installer.
                                  enum:
                                    - modern
                                    - legacy
                                    - unmanaged
                                  example: modern
                                  type: string
                                admin_url:
                                  description: >-
                                    The URL to the instance's administration
                                    interface.
                                  example: example.com/wp-login.php
                                  format: url-path
                                  type: string
                                admin_username:
                                  description: >-
                                    The administrator username the installer
                                    created at the time of installation.
                                  example: admin
                                  type: string
                                available_version:
                                  description: The latest Wordpress's version.
                                  example: 4.9.5
                                  type: string
                                current_version:
                                  description: The WordPress instance's installed version.
                                  example: 4.9.5
                                  type: string
                                db_name:
                                  description: The WordPress instance's database name.
                                  example: example_wp
                                  type: string
                                db_prefix:
                                  description: The WordPress instance's database prefix.
                                  example: wp
                                  type: string
                                db_server:
                                  description: >-
                                    The WordPress instance's database server
                                    hostname.
                                  example: localhost
                                  type: string
                                db_type:
                                  description: |-
                                    The WordPress instance's database type.
                                    * `mysql`
                                    * `postgres`
                                  enum:
                                    - mysql
                                    - postgres
                                  example: mysql
                                  type: string
                                db_username:
                                  description: The WordPress instance's database username.
                                  example: example_wp
                                  type: string
                                domain:
                                  description: The WordPress instance's domain.
                                  example: example.com
                                  format: domain
                                  type: string
                                full_path:
                                  description: >-
                                    The WordPress instance's full installation
                                    path.
                                  example: /home/example/public_html
                                  format: path
                                  type: string
                                homedir:
                                  description: The cPanel account's home directory.
                                  example: /home/example
                                  format: path
                                  type: string
                                id:
                                  description: The WordPress instance's unique identifier.
                                  example: cPanel__Blogs__WordPressX.0.1528208546
                                  type: string
                                initial_install_version:
                                  description: >-
                                    The WordPress instance's version number at
                                    installation.
                                  example: 4.9.6
                                  type: string
                                rel_path:
                                  description: >-
                                    The WordPress instance's installation path
                                    relative to the domain's document root.
                                  example: public_html
                                  format: path
                                  type: string
                                site_url:
                                  description: The WordPress instance's home page URL.
                                  example: example.com
                                  format: url-path
                                  type: string
                              type: object
                            type: array
                          is_running:
                            description: |-
                              Whether the system detects an active scan.

                              * `1` - A scan is active.
                              * `0` - No scans are active.
                            enum:
                              - 0
                              - 1
                            example: 1
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress site scan results
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              get_scan_results
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/get_scan_results
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressInstanceManager_get_scan_results.live.pl
            and put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_scan_results.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/get_scan_results/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            WordPressInstanceManager_get_scan_results.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_get_scan_results.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'get_scan_results'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 2.0
  /WordPressInstanceManager/is_installable_addon_available:
    get:
      description: >-
        This function verifies that the RPM-based WordPress® cPAddon exists on
        the system.


        **Note:**

          You must install the WordPress Manager cPanel plugin to access this API function.
      operationId: is_installable_addon_available
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: is_installable_addon_available
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the RPM-based WordPress cPAddon exists on the
                          server.

                          * `1` - Exists.

                          * `0` - Does **not** exist.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Verify WordPress cPAddon availability
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              is_installable_addon_available
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/is_installable_addon_available
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file
            WordPressInstanceManager_is_installable_addon_available.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_is_installable_addon_available.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/is_installable_addon_available/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file
            WordPressInstanceManager_is_installable_addon_available.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_is_installable_addon_available.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'is_installable_addon_available'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 1.1.1
  /WordPressInstanceManager/start_scan:
    get:
      description: "This function scans for WordPress® instances installed on a cPanel account. The system will populate cPanel's WordPress Manager interface with any newly discovered instances.\n\n**Note:**\n\nYou **must** install the [WordPress Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access this API function.\n\n### Server Sent Events (SSE)\n\nThis function uses the following SSE events:\n\n* `register` —\_The scan operation discovered a WordPress instance and registered it. The data is a\nJSON-encoded object containing the attributes of the instance, with the same format used in the\nUAPI `get_instances` and UAPI `get_instance_by_id` functions.\n* `found` —\_The scan operation found a WordPress instance. If the WordPress instance is newly\ndiscovered, the system will also generate a `register` event for the instance. The data is a\nJSON-encoded object containing the following:\n  * `path` —\_The absolute file path to the instance.\n* `done` —\_The scan is finished. The data is a JSON-encoded object that contains:\n  * `found` —\_An array of strings that represents the absolute path to the discovered instances and\n  any instances that the system already registered.\n  * `converted`\_— An array of converted instances that the system returns in the same format\n  provided in the UAPI `get_instances` and UAPI `get_instance_by_id` functions.\n* `terminated` —\_The system or user terminated the scan.\t\n* `timedout` —\_The scan timed out before it completed.\n* `register-failed` —\_The system failed to build the instance registry.\tThe data is a JSON-encoded\nstring that contains the error message.\n* `register-load-failed` —\_The system could not load the registry after building the instance\nregistry. The data is a JSON-encoded string that contains the error message.\n\nFor more information about server sent events, read Mozilla's [Using server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events) documentation."
      operationId: WordPressInstanceManager-start_scan
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: start_scan
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressInstanceManager
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          guid:
                            description: >-
                              The unique identifier for the scan. A valid
                              string.
                            example: B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                            type: string
                          log:
                            description: The absolute path to the log file for the scan.
                            example: >-
                              /home/example/.cpanel/plugins/wordpress/scans/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                            format: path
                            type: string
                          sse_url:
                            description: >-
                              The SSE interface that other applications can use
                              to track the progress of the scan.


                              **Note:**


                              For more information about the SSE interface, read
                              the [Server Sent Events](#server-sent-events-sse)
                              section.
                            example: >-
                              /sse/WordPressScan/B3A27B96-51F7-11E8-92E3-CC90C4F823F0
                            format: url-path
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - `1` - Success

                          - `0` - Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Start WordPress sites scan
      tags:
        - WordPressInstanceManager
        - WordPress Manager Settings
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressInstanceManager \
              start_scan
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressInstanceManager/start_scan
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressInstanceManager_start_scan.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_start_scan.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressInstanceManager/,
                q/start_scan/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressInstanceManager_start_scan.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressInstanceManager_start_scan.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressInstanceManager',
                'start_scan'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Instance Manager 2.0
  /WordPressRestore/any_running:
    get:
      description: >-
        This function returns whether a WordPress® site backup restoration is in
        progress.


        **Note:**


        * You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.

        * The output of this function changes, depending on the state of the
        backup restoration.
      operationId: WordPressRestore::any_running
      parameters: []
      responses:
        '200':
          content:
            application/json:
              examples:
                InProgress:
                  summary: Example output of a backup restore in progress.
                  value:
                    data:
                      any_running: 1
                      sites:
                        - id: null
                          site: example.com
                          type: restore
                    errors: null
                    messages: null
                    metadata: {}
                    status: 1
                    warnings: null
                NotInProgress:
                  summary: Example output of a backup restore not in progress.
                  value:
                    data:
                      any_running: 0
                      last_outcome:
                        error: ''
                        have_outcome: 1
                        site: example.com
                        status: success
                      sites: []
                    errors: null
                    messages: null
                    metadata: {}
                    status: 1
                    warnings: null
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: any_running
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressRestore
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          items:
                            oneOf:
                              - $ref: '#/components/schemas/RestoreInProgress'
                              - $ref: '#/components/schemas/RestoreNotInProgress'
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          - 1 - Success.

                          - 0 - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress site restore status
      tags:
        - WordPressRestore
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressRestore \
              any_running
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressRestore/any_running
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressRestore_any_running.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressRestore_any_running.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressRestore/,
                q/any_running/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressRestore_any_running.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressRestore_any_running.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressRestore',
                'any_running'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressRestore/cleanup:
    get:
      description: >-
        This function cleans up any temporary system resources after a
        WordPress® site backup restoration.


        **Note:**


        You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.
      operationId: WordPressRestore-cleanup
      parameters:
        - description: The WordPress site's URL **without** the protocol prefix.
          examples:
            single-domain:
              summary: Just a domain.
              value: example.com
            single-path:
              summary: Domain with path.
              value: example.com/wordpress
          in: query
          name: site
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: cleanup
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressRestore
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          Whether the system cleaned up the temporary system
                          resources.

                          * `1` - Successful.

                          * `0` - Unsuccessful.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Delete restored WordPress site's temporary files
      tags:
        - WordPressRestore
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressRestore \
              cleanup \
              site='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressRestore/cleanup?site=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressRestore_cleanup.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressRestore_cleanup.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressRestore/,
                q/cleanup/,
                {
                    'site' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressRestore_cleanup.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressRestore_cleanup.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressRestore',
                'cleanup',
                array (
                    'site' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressRestore/start:
    get:
      description: >-
        This function starts a single WordPress® site backup restoration.


        **Note:**


        You **must** install the [WordPress
        Manager](https://go.cpanel.net/wordpressmanager) cPanel plugin to access
        this API function.
      operationId: WordPressRestore-start
      parameters:
        - description: The file path to the backup archive.
          in: query
          name: backup_path
          required: true
          schema:
            example: >-
              /home/example/wordpress-backups/example.com__2018-11-13T11:11:31-0600.tar.gz
            format: path
            type: string
        - description: The WordPress site's URL to restore.
          examples:
            single-domain:
              summary: Just a domain.
              value: example.com
            single-path:
              summary: Domain with path.
              value: example.com/wordpress
          in: query
          name: site
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: start
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressRestore
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          restore_id:
                            description: >-
                              The unique identifier for the restoration
                              operation. The name of the backup file without the
                              file extension.
                            example: example.com__2018-11-15T08:03:22-0600
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Restore WordPress site
      tags:
        - WordPressRestore
        - WordPress Manager Backups
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressRestore \
              start \
              site='example.com' \
              backup_path='/home/example/wordpress-backups/example.com__2018-11-13T11:11:31-0600.tar.gz'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressRestore/start?site=example.com&backup_path=%2fhome%2fexample%2fwordpress-backups%2fexample.com__2018-11-13T11%3a11%3a31-0600.tar.gz
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressRestore_start.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressRestore_start.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressRestore/,
                q/start/,
                {
                    'site' => 'example.com',
                    'backup_path' => '/home/example/wordpress-backups/example.com__2018-11-13T11:11:31-0600.tar.gz',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressRestore_start.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressRestore_start.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressRestore',
                'start',
                array (
                    'site' => 'example.com',
                    'backup_path' => '/home/example/wordpress-backups/example.com__2018-11-13T11:11:31-0600.tar.gz',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: WordPress Manager 3.0
  /WordPressSite/create:
    get:
      description: >-
        This function installs a WordPress site for cPanel user's primary
        domain.
      operationId: WordPressSite::create
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: create
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressSite
                    type: string
                  result:
                    properties:
                      data: {}
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Install WordPress site
      tags:
        - WordPressSite
        - Site Installation
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressSite \
              create
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressSite/create
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressSite_create.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressSite_create.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressSite/,
                q/create/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressSite_create.live.php and put this code
            into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressSite_create.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressSite',
                'create'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /WordPressSite/retrieve:
    get:
      description: >-
        This function retrieves the installation status and detailed information
        of the WordPress site for cPanel user's primary domain.
      operationId: WordPressSite::retrieve
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: retrieve
                    type: string
                  module:
                    description: The name of the module called.
                    example: WordPressSite
                    type: string
                  result:
                    properties:
                      data:
                        description: >-
                          An object that contains the installation status and
                          information for the WordPress site.
                        items:
                          properties:
                            details:
                              description: Detailed information of the WordPress site.
                              example: null
                              type: object
                            install_status:
                              description: Installation status of the WordPress site.
                              example: in progress
                              type: string
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return WordPress site information
      tags:
        - WordPressSite
        - Site Information
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              WordPressSite \
              retrieve
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/WordPressSite/retrieve
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file WordPressSite_retrieve.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/WordPressSite_retrieve.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/WordPressSite/,
                q/retrieve/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file WordPressSite_retrieve.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/WordPressSite_retrieve.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'WordPressSite',
                'retrieve'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
  /cPAddons/get_available_addons:
    get:
      description: This function lists an account's available cPAddons.
      operationId: get_available_addons
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_available_addons
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPAddons
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            description:
                              description: The cPAddon's name.
                              example: WordPress (cPanel)
                              type: string
                            module:
                              description: The module's name.
                              example: cPanel::Blogs::WordPress
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return available cPAddons
      tags:
        - cPAddons
        - cPanel Addons (cPAddons)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPAddons \
              get_available_addons
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPAddons/get_available_addons
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPAddons_get_available_addons.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPAddons_get_available_addons.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPAddons/,
                q/get_available_addons/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPAddons_get_available_addons.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPAddons_get_available_addons.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPAddons',
                'get_available_addons'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.52
  /cPAddons/get_instance_settings:
    get:
      description: This function lists a cPAddons instance's settings.
      operationId: get_instance_settings
      parameters:
        - description: |-
            The unique identifier of the cPAddon.

            **Note:**

            To find this identifier, run the `list_addon_instances` function.
          in: query
          name: unique_id
          required: true
          schema:
            example: cPanel::Blogs::WordPressX.0.1486754861
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_instance_settings
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPAddons
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          addon:
                            description: >-
                              The name of the cPAddon in double colon-delimited
                              form.
                            example: cPanel::Blogs::WordPressX
                            type: string
                          admin_user:
                            description: The administrative user for the cPAddon instance.
                            type: string
                          autoupdate:
                            description: >-
                              Whether the system processes automatic updates for
                              the cPAddon instance.

                              * `1` - Automatic updates enabled.

                              * `0` - Automatic updates disabled.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                          db_name:
                            description: The cPAddon instance's database name.
                            example: example_wp
                            type: string
                          db_type:
                            description: The cPAddon instance's database type.
                            enum:
                              - mysql
                              - postgre
                            example: mysql
                            type: string
                          db_user:
                            description: The cPAddon instance's database user.
                            example: example_wp
                            type: string
                          domain:
                            description: The domain on which the instance is installed.
                            example: example.com
                            format: domain
                            type: string
                          installdir:
                            description: >-
                              The full path of the directory in which the system
                              deployed the cPAddon.
                            example: /home/example/public_html/wordpress
                            type: string
                          url_to_install:
                            description: The URL to access the cPAddon instance.
                            example: http://example.com/wordpress/
                            format: url
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return deployed cPAddons instance's settings
      tags:
        - cPAddons
        - cPanel Addons (cPAddons)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPAddons \
              get_instance_settings \
              unique_id='cPanel::Blogs::WordPressX.0.1486754861'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPAddons/get_instance_settings?unique_id=cPanel%3a%3aBlogs%3a%3aWordPressX.0.1486754861
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPAddons_get_instance_settings.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPAddons_get_instance_settings.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPAddons/,
                q/get_instance_settings/,
                {
                    'unique_id' => 'cPanel::Blogs::WordPressX.0.1486754861',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPAddons_get_instance_settings.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPAddons_get_instance_settings.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPAddons',
                'get_instance_settings',
                array (
                    'unique_id' => 'cPanel::Blogs::WordPressX.0.1486754861',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /cPAddons/list_addon_instances:
    get:
      description: This function lists an account's deployed cPAddons instances.
      operationId: list_addon_instances
      parameters:
        - description: The cPAddon for which to return the instances data.
          in: query
          name: addon
          required: false
          schema:
            example: cPanel::Blogs::WordPressX
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_addon_instances
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPAddons
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            addon:
                              description: >-
                                The name of the cPAddon in double
                                colon-delimited form.
                              example: cPanel::Blogs::WordPressX
                              type: string
                            domain:
                              description: The domain on which the instance is installed.
                              example: example.com
                              type: string
                            installdir:
                              description: >-
                                The full path of the directory in which the
                                system deployed the cPAddon.
                              example: /home/example/public_html/wordpress
                              type: string
                            instance:
                              description: The name of the instance and the number suffix.
                              example: cPanel::Blogs::WordPressX.0
                              type: string
                            unique_id:
                              description: |-
                                The unique identifier for the cPAddon.

                                **Note:**

                                 This identifier will not change when you change the cPAddon's settings. However, if a new instance reuses a cPaddon's instance name, the system updates the unique identifier. You can use this identifier to select a specific instance to modify. A unique identifier.
                              example: cPanel::Blogs::WordPressX.0.1486754861
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return deployed cPAddons instances
      tags:
        - cPAddons
        - cPanel Addons (cPAddons)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPAddons \
              list_addon_instances
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPAddons/list_addon_instances
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPAddons_list_addon_instances.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPAddons_list_addon_instances.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPAddons/,
                q/list_addon_instances/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPAddons_list_addon_instances.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPAddons_list_addon_instances.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPAddons',
                'list_addon_instances'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 64
  /cPGreyList/disable_all_domains:
    get:
      description: This function disables Greylisting on a cPanel account's domains.
      operationId: cPGreyList-disable_all_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_all_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPGreyList
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            dependencies:
                              description: The domains that your changes will affect.
                              example:
                                - this.com
                                - that.com
                                - theother.com
                              items:
                                type: string
                              type: array
                            domain:
                              description: The domain.
                              example: example.com
                              type: string
                            enabled:
                              description: |-
                                Whether Greylisting is enabled.
                                - `1` — Enabled.
                                - `0` — Disabled.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: this, that, the other
                              type: string
                            type:
                              description: |-
                                The domain type.
                                - `main` — A main domain.
                                - `addon` — An addon domain.
                                - `parked` — A parked domain.
                              enum:
                                - main
                                - addon
                                - parked
                              example: main
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          - 1 — Success.

                          - 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable Greylisting for all domains
      tags:
        - cPGreyList
        - Spam Filtering (Greylisting)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPGreyList \
              disable_all_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPGreyList/disable_all_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPGreyList_disable_all_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPGreyList_disable_all_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPGreyList/,
                q/disable_all_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPGreyList_disable_all_domains.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPGreyList_disable_all_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPGreyList',
                'disable_all_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /cPGreyList/disable_domains:
    get:
      description: >-
        This function disables Greylisting on a cPanel account's selected
        domains.
      operationId: cPGreyList-disable_domains
      parameters:
        - description: "The domain on which to disable Greylisting.\n\n**Note:**\n\nTo disable Greylisting on multiple domains, use the\_`domains` parameter multiple times."
          examples:
            multiple:
              description: Multiple domains.
              value: domain=example.com domain=example1.com domain=example2.com
            single:
              description: A single domain.
              value: example.com
          in: query
          name: domains
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: disable_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPGreyList
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            dependencies:
                              description: >-
                                An array of domains that your changes will
                                affect.
                              example:
                                - this.com
                                - that.com
                                - theother.com
                              items:
                                type: string
                              type: array
                            domain:
                              description: The domain.
                              example: example.com
                              type: string
                            enabled:
                              description: |-
                                Whether Greylisting is disabled.
                                * `1` — Enabled.
                                * `0` — Disabled.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: this, that, the other
                              type: string
                            type:
                              description: |-
                                The domain type.
                                * `main` — A main domain.
                                * `sub` — A subdomain.
                              enum:
                                - main
                                - sub
                              example: main
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Disable Greylisting for specified domains
      tags:
        - cPGreyList
        - Spam Filtering (Greylisting)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPGreyList \
              disable_domains \
              domains='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPGreyList/disable_domains?domains=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPGreyList_disable_domains.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPGreyList_disable_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPGreyList/,
                q/disable_domains/,
                {
                    'domains' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPGreyList_disable_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPGreyList_disable_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPGreyList',
                'disable_domains',
                array (
                    'domains' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /cPGreyList/enable_all_domains:
    get:
      description: >-
        This function enables Greylisting on all of the cPanel account's
        domains.
      operationId: cPGreyList-enable_all_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_all_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPGreyList
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            dependencies:
                              description: >-
                                An array of domains that your changes will
                                affect.
                              example:
                                - this.com
                                - that.com
                                - theother.com
                              items:
                                type: string
                              type: array
                            domain:
                              description: The domain.
                              example: example.com
                              type: string
                            enabled:
                              description: |-
                                Whether Greylisting is enabled.
                                * `1` — Enabled.
                                * `0` — Disabled.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: this, that, and the other.
                              type: string
                            type:
                              description: |-
                                The domain type.
                                * `main` — A main domain.
                                * `sub` — A subdomain.
                              example: main
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable Greylisting for all domains
      tags:
        - cPGreyList
        - Spam Filtering (Greylisting)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPGreyList \
              enable_all_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPGreyList/enable_all_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPGreyList_enable_all_domains.live.pl and put
            this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPGreyList_enable_all_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPGreyList/,
                q/enable_all_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPGreyList_enable_all_domains.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPGreyList_enable_all_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPGreyList',
                'enable_all_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /cPGreyList/enable_domains:
    get:
      description: >-
        This function enables Greylisting on a cPanel account's selected
        domains.
      operationId: cPGreyList-enable_domains
      parameters:
        - description: "The domain on which to enable Greylisting.\n\n**Note:**\n\n To enable Greylisting on multiple domains, use the\_`domains`\_parameter multiple times."
          examples:
            multiple:
              summary: Multiple domains.
              value: domain=example.com&domain=example1.com&domain=example2.com
            single:
              summary: A single domain.
              value: example.com
          in: query
          name: domains
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: enable_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPGreyList
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            dependencies:
                              description: >-
                                An array of domains that your changes will
                                affect.
                              example:
                                - example.com
                                - example1.com
                                - example2.com
                              items:
                                format: domain
                                type: string
                              type: array
                            domain:
                              description: The domain.
                              example: example.com
                              type: string
                            enabled:
                              description: |-
                                Whether Greylisting is disabled.
                                * `1` — Enabled.
                                * `0` — Disabled.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: example, example1, example2
                              type: string
                            type:
                              description: |-
                                The domain type.
                                * `main` — A main domain.
                                * `sub` — A subdomain.
                              enum:
                                - main
                                - sub
                              example: main
                              type: string
                          type: object
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Enable Greylisting for specified domains
      tags:
        - cPGreyList
        - Spam Filtering (Greylisting)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPGreyList \
              enable_domains \
              domains='example.com'
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPGreyList/enable_domains?domains=example.com
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPGreyList_enable_domains.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPGreyList_enable_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPGreyList/,
                q/enable_domains/,
                {
                    'domains' => 'example.com',
                }
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPGreyList_enable_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPGreyList_enable_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPGreyList',
                'enable_domains',
                array (
                    'domains' => 'example.com',
                )
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /cPGreyList/has_greylisting_enabled:
    get:
      description: >-
        This function checks whether Greylisting is enabled for the cPanel
        account.
      operationId: has_greylisting_enabled
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: has_greylisting_enabled
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPGreyList
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          enabled:
                            description: |-
                              Whether Greylisting is enabled.
                              * `1` — Enabled.
                              * `0` — Disabled.
                            enum:
                              - 0
                              - 1
                            example: 0
                            type: integer
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` — Success.

                          * `0` — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether Greylisting is enabled
      tags:
        - cPGreyList
        - Spam Filtering (Greylisting)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPGreyList \
              has_greylisting_enabled
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPGreyList/has_greylisting_enabled
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPGreyList_has_greylisting_enabled.live.pl and
            put this code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPGreyList_has_greylisting_enabled.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPGreyList/,
                q/has_greylisting_enabled/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPGreyList_has_greylisting_enabled.live.php and
            put this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPGreyList_has_greylisting_enabled.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPGreyList',
                'has_greylisting_enabled'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /cPGreyList/list_domains:
    get:
      description: >-
        This function returns Greylisting's status for a cPanel account's
        domains.
      operationId: cPGreyList::list_domains
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: list_domains
                    type: string
                  module:
                    description: The name of the module called.
                    example: cPGreyList
                    type: string
                  result:
                    properties:
                      data:
                        items:
                          properties:
                            cPGreyList:
                              description: >-
                                An object that contains the number of domains
                                with Greylisting enabled or disabled.
                              properties:
                                total_disabled:
                                  description: >-
                                    The number of domains with Greylisting
                                    disabled.
                                  example: 1
                                  minimum: 0
                                  type: integer
                                total_enabled:
                                  description: >-
                                    The number of domains with Greylisting
                                    enabled.
                                  example: 0
                                  minimum: 0
                                  type: integer
                              type: object
                            dependencies:
                              description: >-
                                An array of domains that your changes to a
                                selected domain will affect.
                              example:
                                - this.com
                                - that.com
                                - theother.com
                              items:
                                format: domain
                                type: string
                              type: array
                            domain:
                              description: The domain.
                              example: example.com
                              format: domain
                              type: string
                            enabled:
                              description: |-
                                Whether Greylisting is enabled.
                                * `1` — Enabled.
                                * `0` — Disabled.
                              enum:
                                - 0
                                - 1
                              example: 0
                              type: integer
                            searchhint:
                              description: >-
                                A comma-separated list of domain-related search
                                terms.
                              example: this, that, and the other.
                              type: string
                            type:
                              description: |-
                                The domain type.
                                * `main` — A main domain.
                                * `sub` — A subdomain.
                              enum:
                                - main
                                - sub
                              example: main
                              type: string
                          type: object
                        properties: {}
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * 1 — Success.

                          * 0 — Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return Greylisting status for domains
      tags:
        - cPGreyList
        - Spam Filtering (Greylisting)
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              cPGreyList \
              list_domains
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/cPGreyList/list_domains
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file cPGreyList_list_domains.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/cPGreyList_list_domains.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/cPGreyList/,
                q/list_domains/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file cPGreyList_list_domains.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/cPGreyList_list_domains.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'cPGreyList',
                'list_domains'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.50
  /get_php_recommendations:
    get:
      description: This function returns a list of recommended PHP versions.
      operationId: EA4::get_php_recommendations
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_php_recommendations
                    type: string
                  module:
                    description: The name of the module called.
                    example: EA4
                    type: string
                  result:
                    properties:
                      data:
                        description: An array of recommended PHP versions.
                        items:
                          example: php80
                          type: string
                        type: array
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties:
                          transformed:
                            description: Post-processing may have transformed the data.
                            enum:
                              - 1
                            example: 1
                            type: integer
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Get custom PHP recommendations.
      tags:
        - PHP
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EA4 \
              get_php_recommendations
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EA4/get_php_recommendations
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EA4_get_php_recommendations.live.pl and put this
            code into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EA4_get_php_recommendations.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EA4/,
                q/get_php_recommendations/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                foreach my $item (@{$data}) {
                    # Do something with the $item
                }

                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EA4_get_php_recommendations.live.php and put
            this code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EA4_get_php_recommendations.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EA4',
                'get_php_recommendations'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                foreach ($data as $item) {
                    // Do something with the $item
                }

                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: 82
  /get_recommendations:
    get:
      description: "This function retrieves a list of EasyApache 4\_(EA4) configuration recommendations."
      operationId: get_recommendations
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_recommendations
                    type: string
                  module:
                    description: The name of the module called.
                    example: EA4
                    type: string
                  result:
                    properties:
                      data:
                        additionalProperties:
                          description: >-
                            An object that contains recommendation information
                            about a package.


                            **Note:**


                            The function uses the name of the referenced package
                            as the return name.
                          items:
                            properties:
                              desc:
                                description: >-
                                  The recommendation's description.


                                  **Note:**


                                  The function **only** returns this value if
                                  one exists.
                                type: string
                              level:
                                description: >-
                                  The level that triggers a recommendation to
                                  appear, based on [Bootstrap 3 alert
                                  components](http://getbootstrap.com/components/#alerts).


                                  * `primary`

                                  * `success`

                                  * `info`

                                  * `warning`

                                  * `danger`


                                  **Note:**


                                  * The function **only** returns this value if
                                  one exists.

                                  * This return's value only affects the UI if
                                  set to `danger`.
                                enum:
                                  - primary
                                  - success
                                  - info
                                  - warning
                                  - danger
                                type: string
                              name:
                                description: The recommendation's name.
                                type: string
                              'on':
                                description: |-
                                  The action that triggers a recommendation.

                                  * `add`
                                  * `remove`
                                enum:
                                  - add
                                  - remove
                                type: string
                              options:
                                description: >-
                                  An object that contains each option for the
                                  package's recommendations.
                                items:
                                  properties:
                                    items:
                                      description: >-
                                        An array of information that corresponds
                                        with a text value.


                                        **Note:**


                                        The function **only** returns this value
                                        if one exists.
                                      items:
                                        type: string
                                      type: array
                                    level:
                                      description: >-
                                        The level that triggers a recommendation
                                        to appear, based on [Bootstrap 3 alert
                                        components](http://getbootstrap.com/components/#alerts).


                                        * `primary`

                                        * `success`

                                        * `info`

                                        * `warning`

                                        * `danger`


                                        **Note:**


                                        * The function **only** returns this
                                        value if one exists.

                                        * This return's value only affects the
                                        UI if set to `danger`.
                                      enum:
                                        - primary
                                        - success
                                        - info
                                        - warning
                                        - danger
                                      type: string
                                    recommended:
                                      description: >-
                                        The type of recommendation that the
                                        interface will return.


                                        * `true` - Recommended.

                                        * `false` - Not recommended.


                                        **Note:**


                                        * The function **only** returns this
                                        value if one exists.

                                        * If the function does **not** return
                                        this value, then the interface will
                                        display informational text.
                                      type: boolean
                                    text:
                                      description: >-
                                        The text that the user interface
                                        displays.
                                      type: string
                                    url:
                                      description: >-
                                        A URL that provides more information.


                                        **Note:**


                                        The function **only** returns this value
                                        if one exists.
                                      format: url
                                      type: string
                                  type: object
                                type: array
                              url:
                                description: >-
                                  A URL to provide more information.


                                  **Note:**


                                  The function **only** returns this value if
                                  one exists.
                                format: url
                                type: string
                            type: object
                          type: array
                        example:
                          ea-php55-php:
                            - desc: >-
                                PHP DSO runs as the user [asis,nobody] by
                                default. In a shared hosting environment, this
                                is a security issue.
                              level: danger
                              name: PHP DSO
                              'on': add
                              options:
                                - items:
                                    - ea-apache24-mod_ruid2
                                    - ea-apache24-mod_mpm_itk
                                  level: success
                                  recommended: true
                                  text: >-
                                    We strongly recommend that you install one
                                    of the following packages unless this is a
                                    single-user system:
                                - level: warning
                                  recommended: false
                                  text: >-
                                    If you use suPHP, you will add some
                                    security, but may experience performance
                                    issues on your server.
                              url: https://www.example.com
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` – Success.

                          * `0` – Failed: Check the errors field for more
                          details.
                        enum:
                          - 0
                          - 1
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Get EA4 configuration recommendations
      tags:
        - EA4
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              EA4 \
              get_recommendations
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/EA4/get_recommendations
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is the theme assigned to cPanel account.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file EA4_get_recommendations.live.pl and put this code
            into that file.

            # 5) In your browser login to a cPanel account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to
            .../frontend/<theme-name>/api_examples/EA4_get_recommendations.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to cPanel - only do
            this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/EA4/,
                q/get_recommendations/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from cPanel - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >-
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is the theme assigned to cPanel account.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file EA4_get_recommendations.live.php and put this
            code into that file.

            // 5) In your browser login to a cPanel account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/EA4_get_recommendations.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to cPanel - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'EA4',
                'get_recommendations'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from cPanel - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 84
  /ssh/get_shell:
    get:
      description: >-
        This function returns whether the cPanel account has shell access and
        the account's shell path.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  apiversion:
                    description: The version of the API.
                    example: 3
                    type: integer
                  func:
                    description: The name of the method called.
                    example: get_shell
                    type: string
                  module:
                    description: The name of the module called.
                    example: SSH
                    type: string
                  result:
                    properties:
                      data:
                        properties:
                          has_terminal_access:
                            description: |
                              Whether the cPanel account has shell access.

                              * `true` - Account has shell access.
                              * `false` - Account does not have shell access.
                            example: true
                            type: boolean
                          shell:
                            description: The cPanel account's shell path.
                            example: /bin/bash
                            type: string
                        type: object
                      errors:
                        description: List of errors if the API failed.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      messages:
                        description: List of messages generated by the API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                      metadata:
                        properties: {}
                      status:
                        description: >-
                          * `1` - Success.

                          * `0` - Failed. Check the `errors` field for more
                          details.
                        enum:
                          - 1
                          - 0
                        example: 1
                        type: integer
                      warnings:
                        description: >-
                          List of warnings generated by the API. Warnings
                          describe non-critical failures or other problematic
                          conditions noted while running a API.
                        example: null
                        items:
                          type: string
                        nullable: true
                        type: array
                    type: object
                type: object
          description: HTTP Request was successful.
      summary: Return whether cPanel account has shell access
      tags:
        - SSH
      x-codeSamples:
        - label: CLI
          lang: Shell
          source: |
            uapi --output=jsonpretty \
              --user=username \
              SSH \
              get_shell
        - label: URL
          lang: HTTP
          source: >-
            https://hostname.example.com:2083/cpsess##########/execute/SSH/get_shell
        - label: LiveAPI Perl
          lang: Perl
          source: >
            #--------------------------------------------------------------------------------------

            # Instructions:

            #--------------------------------------------------------------------------------------

            # <theme-name> is wp-squared for WP Squared accounts.

            # 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            # 2) mkdir api_examples

            # 3) cd api_examples

            # 4) create a file SSH_get_shell.live.pl and put this code into that
            file.

            # 5) In your browser login to a WP Squared account.

            # 6) Manually change the url from: .../frontend/<theme-name>/

            #    to .../frontend/<theme-name>/api_examples/SSH_get_shell.live.pl

            #--------------------------------------------------------------------------------------


            use strict;


            use Cpanel::LiveAPI ();


            my $cpanel = Cpanel::LiveAPI->new(); # Connect to WP Squared - only
            do this once.


            # Print the header

            print "Content-type: text/plain\r\n\r\n";


            # Call the API

            my $response = $cpanel->uapi(
                q/SSH/,
                q/get_shell/
            );


            # Handle the response

            if ($response->{cpanelresult}{result}{status}) {
                my $data = $response->{cpanelresult}{result}{data};
                # Do something with the $data
                # So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                # Report errors:
                print to_json($response->{cpanelresult}{result}{errors});
            }


            # Disconnect from WP Squared - only do this once.

            $cpanel->end();


            #--------------------------------------------------------------------------------------

            # Helper function to convert a perl object to html printable json

            #--------------------------------------------------------------------------------------

            sub to_json {
                require JSON;
                my $str = JSON->new->pretty->encode($_[0]);
                return $str;
            }
        - label: LiveAPI PHP
          lang: PHP
          source: >
            <?php

            //--------------------------------------------------------------------------------------

            // Instructions:

            //--------------------------------------------------------------------------------------

            // <theme-name> is wp-squared for WP Squared accounts.

            // 1) cd /usr/local/cpanel/base/frontend/<theme-name>

            // 2) mkdir api_examples

            // 3) cd api_examples

            // 4) create a file SSH_get_shell.live.php and put this code into
            that file.

            // 5) In your browser login to a WP Squared account.

            // 6) Manually change the url from: .../frontend/<theme-name>/

            //    to
            .../frontend/<theme-name>/api_examples/SSH_get_shell.live.php

            //--------------------------------------------------------------------------------------


            // Instantiate the CPANEL object.

            require_once "/usr/local/cpanel/php/cpanel.php";


            // Print the header

            header('Content-Type: text/plain');


            // Connect to WP Squared - only do this once.

            $cpanel = new CPANEL();


            // Call the API

            $response = $cpanel->uapi(
                'SSH',
                'get_shell'
            );


            // Handle the response

            if ($response['cpanelresult']['result']['status']) {
                $data = $response['cpanelresult']['result']['data'];
                // Do something with the $data
                // So you can see the data shape we print it here.
                print to_json($data);
            }

            else {
                // Report errors:
                print to_json($response['cpanelresult']['result']['errors']);
            }


            // Disconnect from WP Squared - only do this once.

            $cpanel->end();


            //--------------------------------------------------------------------------------------

            // Helper function to convert a PHP value to html printable json

            //--------------------------------------------------------------------------------------

            function to_json($data) {
                return json_encode($data, JSON_PRETTY_PRINT);
            }
      x-cpanel-api-version: UAPI
      x-cpanel-available-version: cPanel 11.42
security:
  - BasicAuth: []
servers:
  - description: A server running cPanel.
    url: https://{host}:{port}/execute
    variables:
      host:
        default: cpanel-server.tld
        description: The hostname of a server running cPanel
      port:
        default: '2083'
        description: The cPanel port.
tags:
  - description: The Account Enhancement module for UAPI.
    name: Account Enhancements
  - description: cPanel Account / Account Information
    name: Account Information
  - description: cPanel Account / Account Management
    name: Account Management
  - description: Optional Applications / Antivirus Protection (ClamAV)
    name: Antivirus Protection (ClamAV)
  - description: API Development Tools / API Token Management
    name: API Token Management
  - description: cPanel Theme Management / Application Information
    name: Application Information
  - description: Web Server Management / Application Manager
    name: Application Manager
  - description: SSL Certificates / Auto-generated SSL Certificates
    name: Auto-generated SSL Certificates
  - description: The Backup module for UAPI.
    name: Backup
  - description: The Bandwidth module for UAPI.
    name: Bandwidth
  - description: The Batch module for UAPI.
    name: Batch
  - description: Block Ip Addresses / Block IP
    name: Block IP
  - description: The BlockIP module for UAPI.
    name: BlockIP
  - description: The BoxTrapper module for UAPI.
    name: BoxTrapper
  - description: cPanel Theme Management / Brand Management
    name: Brand Management
  - description: The Branding module for UAPI.
    name: Branding
  - description: cPanel Theme Management / Browser Cache Management
    name: Browser Cache Management
  - description: The CacheBuster module for UAPI.
    name: CacheBuster
  - description: Optional Applications / Calendar and Contacts (DAV)
    name: Calendar and Contacts (DAV)
  - description: Optional Applications / Calendar and Contacts Server
    name: Calendar and Contacts Server
  - description: The CCS module for UAPI.
    name: CCS
  - description: The Chkservd module for UAPI.
    name: Chkservd
  - description: The Chrome module for UAPI.
    name: Chrome
  - description: >-
      The ClamScanner module provides methods for ClamAV® virus scans and
      disinfection.
    name: ClamScanner
  - description: Contact Information
    name: Contact Information
  - description: cPanel Account / Contact Information
    name: Contact Information
  - description: The ContactInformation module for UAPI.
    name: ContactInformation
  - description: The Contactus module for UAPI.
    name: Contactus
  - description: The cPAddons module for UAPI.
    name: cPAddons
  - description: SSL Certificates / cPanel Account SSL Management
    name: cPanel Account SSL Management
  - description: Optional Applications / cPanel Addons (cPAddons)
    name: cPanel Addons (cPAddons)
  - description: cPanel Account / cPanel Features
    name: cPanel Features
  - description: Server Information / Server Information
    name: cPanel Server Information
  - description: Server Information / cPanel Server Information
    name: cPanel Server Information
  - description: The CPDAVD module for UAPI.
    name: CPDAVD
  - description: The cPGreyList module for UAPI.
    name: cPGreyList
  - description: The CSVImport module for UAPI.
    name: CSVImport
  - description: MySQL and MariaDB / Database Information
    name: Database Information
  - description: MySQL and MariaDB / Database Management
    name: Database Management
  - description: The DAV module for UAPI.
    name: DAV
  - description: The DCV module for UAPI.
    name: DCV
  - description: GIT Management / Deployment Settings
    name: Deployment Settings
  - description: Domain Management / Direct Link Protection (Hotlink)
    name: Direct Link Protection (Hotlink)
  - description: Directory Management / Directory Indexes
    name: Directory Indexes
  - description: Directory Management / Directory Privacy
    name: Directory Privacy
  - description: Directory Management / Directory Protection
    name: Directory Protection
  - description: The DirectoryIndexes module for UAPI.
    name: DirectoryIndexes
  - description: The DirectoryPrivacy module for UAPI.
    name: DirectoryPrivacy
  - description: The DirectoryProtection module for UAPI.
    name: DirectoryProtection
  - description: cPanel Account / Disk Quotas
    name: Disk Quotas
  - description: The DNS module for UAPI.
    name: DNS
  - description: DNS / DNS Information
    name: DNS Information
  - description: DNS / DNS Security
    name: DNS Security
  - description: The DNSSEC module for UAPI.
    name: DNSSEC
  - description: The Domain module for UAPI.
    name: Domain
  - description: Domain Management / Domain Information
    name: Domain Information
  - description: Domain Management / Domain Redirection
    name: Domain Redirection
  - description: Statistics / Domain Statistics
    name: Domain Statistics
  - description: The DomainInfo module for UAPI.
    name: DomainInfo
  - description: DNS / Dynamic DNS
    name: Dynamic DNS
  - description: The DynamicDNS module for UAPI.
    name: DynamicDNS
  - description: The EA4 module for UAPI.
    name: EA4
  - description: The Email module for UAPI.
    name: Email
  - description: Email / Email Accounts
    name: Email Accounts
  - description: DNS / Email DNS Settings
    name: Email DNS Settings
  - description: Email / Email Filtering
    name: Email Filtering
  - description: Email / Email Forwarding
    name: Email Forwarding
  - description: Email / Email Server Information
    name: Email Server Information
  - description: Email / Email Server Information.
    name: Email Server Information
  - description: Email / Email Suspensions
    name: Email Suspensions
  - description: The EmailAuth module for UAPI.
    name: EmailAuth
  - description: Authentication / External Authentication
    name: External Authentication
  - description: The ExternalAuthentication module for UAPI.
    name: ExternalAuthentication
  - description: The Features module for UAPI.
    name: Features
  - description: cPanel Account Backups / File Restoration
    name: File Restoration
  - description: The Fileman module for UAPI.
    name: Fileman
  - description: The Ftp module for UAPI.
    name: Ftp
  - description: The FTP module for UAPI.
    name: Ftp
  - description: Files / FTP Accounts
    name: FTP Accounts
  - description: Files / FTP Server Settings
    name: FTP Server Settings
  - description: The GPG module for UAPI.
    name: GPG
  - description: Website Configuration / Handler Management
    name: Handler Management
  - description: Files / Image Tools
    name: Image Tools
  - description: The ImageManager module for UAPI.
    name: ImageManager
  - description: The InProductSurvey module for cPanel UAPI.
    name: InProductSurvey
  - description: The Integration module for UAPI.
    name: Integration
  - description: Security / Known SSH Hosts Management
    name: Known SSH Hosts Management
  - description: The KnownHosts module for UAPI.
    name: KnownHosts
  - description: The LangPHP module for UAPI.
    name: LangPHP
  - description: cPanel Theme Management / Language
    name: Language
  - description: The LastLogin module for UAPI.
    name: LastLogin
  - description: The Leika module for cPanel UAPI.
    name: Leika
  - description: The Locale module for UAPI.
    name: Locale
  - description: Security / Login Information
    name: Login Information
  - description: The LogManager module for UAPI.
    name: LogManager
  - description: Website Configuration / Logs
    name: Logs
  - description: Email / Mail Server Information
    name: Mail Server Information
  - description: Email / Mailbox Management
    name: Mailbox Management
  - description: The Mailboxes module for UAPI.
    name: Mailboxes
  - description: Email / Mailing Lists
    name: Mailing Lists
  - description: Files / Manage Files
    name: Manage Files
  - description: The Market module for UAPI.
    name: Market
  - description: Commerce Integration / Market Integration
    name: Market Integration
  - description: The Mime module for UAPI.
    name: Mime
  - description: Website Configuration / Mime Type Management
    name: Mime Type Management
  - description: The ModSecurity module for UAPI.
    name: ModSecurity
  - description: The Mysql module for UAPI.
    name: Mysql
  - description: The NginxCaching module for UAPI.
    name: NginxCaching
  - description: The Notifications module for UAPI.
    name: Notifications
  - description: The Parser module for UAPI.
    name: Parser
  - description: The PassengerApps module for UAPI.
    name: PassengerApps
  - description: The PasswdStrength module for UAPI.
    name: PasswdStrength
  - description: Server Information / Password Strength
    name: Password Strength
  - description: The Personalization module for UAPI.
    name: Personalization
  - description: PHP recommendations
    name: PHP
  - description: Web Server Management / PHP Settings
    name: PHP Settings
  - description: The Plugins module for UAPI.
    name: Plugins
  - description: The Postgresql module for UAPI.
    name: Postgresql
  - description: PostgreSQL / Database Management
    name: PostgreSQL Database Management
  - description: PostgreSQL / User Management
    name: PostgreSQL User Management
  - description: The Pushbullet module for UAPI.
    name: Pushbullet
  - description: The Quota module for UAPI.
    name: Quota
  - description: MySQL and MariaDB / Remote Databases
    name: Remote Databases
  - description: GIT Management / Repository Management
    name: Repository Management
  - description: The Resellers module for UAPI.
    name: Resellers
  - description: cPanel Account / Resource Usage and Statistics
    name: Resource Usage and Statistics
  - description: The ResourceUsage module for UAPI.
    name: ResourceUsage
  - description: The ServerInformation module for UAPI.
    name: ServerInformation
  - description: Service Proxy
    name: Service Proxy
  - description: The ServiceProxy module for UAPI.
    name: ServiceProxy
  - description: The Session module for UAPI.
    name: Session
  - description: Email / Signing and Encryption (GnuPG Keys)
    name: Signing and Encryption (GnuPG Keys)
  - description: Website Configuration / Site Information
    name: Site Information
  - description: Website Configuration / Site Installation
    name: Site Installation
  - description: Website Configuration / Site Publisher Management
    name: Site Publisher Management
  - description: The Sitejet module for UAPI.
    name: Sitejet
  - description: The SiteQuality module for UAPI.
    name: SiteQuality
  - description: The SiteTemplates module for UAPI.
    name: SiteTemplates
  - description: SSL Certificates / SNI Email Settings
    name: SNI Email Settings
  - description: Email / Spam Filtering (Greylisting)
    name: Spam Filtering (Greylisting)
  - description: Email / Spam Management
    name: Spam Management
  - description: Email / Spam Prevention (BoxTrapper)
    name: Spam Prevention (BoxTrapper)
  - description: The SpamAssassin module for UAPI.
    name: SpamAssassin
  - description: API Development Tools / SSE Task Management
    name: SSE Task Management
  - description: The SSH module for UAPI.
    name: SSH
  - description: The SSL module for UAPI.
    name: SSL
  - description: SSL Certificates / SSL Certificate Management
    name: SSL Certificate Management
  - description: Commerce Integration / SSL Certificates
    name: SSL Certificates
  - description: The Stats module for UAPI.
    name: Stats
  - description: The StatsBar module for UAPI.
    name: StatsBar
  - description: The StatsManager module for UAPI.
    name: StatsManager
  - description: cPanel Account / Subaccount Management
    name: Subaccount Management
  - description: The SubDomain module for UAPI.
    name: SubDomain
  - description: The Team Roles module for UAPI.
    name: Team Roles
  - description: The Team User module for UAPI.
    name: Team Users
  - description: cPanel Theme Management / Theme Settings
    name: Theme Settings
  - description: The Themes module for UAPI.
    name: Themes
  - description: The Tokens module for UAPI.
    name: Tokens
  - description: Authentication / Two-Factor Settings
    name: Two-Factor Settings
  - description: The TwoFactorAuth module for UAPI.
    name: TwoFactorAuth
  - description: API Development Tools / URL Parsing
    name: URL Parsing
  - description: MySQL and MariaDB / User Management
    name: User Management
  - description: The UserData module for cPanel UAPI.
    name: UserData
  - description: The UserManager module for UAPI.
    name: UserManager
  - description: The Users module for UAPI.
    name: Users
  - description: The UserTasks module for UAPI.
    name: UserTasks
  - description: The Variables module for UAPI.
    name: Variables
  - description: SSL Certificates / Verify Domain Ownership
    name: Verify Domain Ownership
  - description: The VersionControl module for UAPI.
    name: VersionControl
  - description: The VersionControlDeployment module for UAPI.
    name: VersionControlDeployment
  - description: Domain Management / Virtual Host Information
    name: Virtual Host Information
  - description: The WebDisk module for UAPI.
    name: WebDisk
  - description: Files / WebDisk Settings
    name: WebDisk Settings
  - description: Statistics / Weblog Settings
    name: Weblog Settings
  - description: Email / Webmail Applications
    name: Webmail Applications
  - description: Email / Webmail Sessions
    name: Webmail Sessions
  - description: The WebmailApps module for UAPI.
    name: WebmailApps
  - description: The WebVhosts module for UAPI.
    name: WebVhosts
  - description: Optional Applications / WordPress Manager Backups
    name: WordPress Manager Backups
  - description: Optional Applications / WordPress Manager Settings
    name: WordPress Manager Settings
  - description: The WordPressBackup module for UAPI.
    name: WordPressBackup
  - description: The WordPressInstanceManager module for UAPI.
    name: WordPressInstanceManager
  - description: The WordPressRestore module for UAPI.
    name: WordPressRestore
  - description: The WordPressSite module for UAPI.
    name: WordPressSite
x-tagGroups:
  - name: API Development Tools
    tags:
      - API Token Management
      - Batch
      - SSE Task Management
      - URL Parsing
  - name: Authentication
    tags:
      - External Authentication
      - Two-Factor Settings
  - name: Block Ip Addresses
    tags:
      - Block IP
  - name: Commerce Integration
    tags:
      - Market Integration
      - SSL Certificates
  - name: Contact Information
    tags:
      - Contact Information
  - name: cPanel Account
    tags:
      - Account Enhancements
      - Account Information
      - Account Management
      - AuditLog
      - Contact Information
      - cPanel Features
      - Disk Quotas
      - Personalization
      - Resource Usage and Statistics
      - Subaccount Management
      - Team Roles
      - Team Users
  - name: cPanel Account Backups
    tags:
      - Backup
      - File Restoration
  - name: cPanel Plugin Framework
    tags:
      - Plugins
  - name: cPanel Theme Management
    tags:
      - Application Information
      - Brand Management
      - Browser Cache Management
      - Language
      - Theme Settings
  - name: Directory Management
    tags:
      - Directory Indexes
      - Directory Privacy
      - Directory Protection
  - name: DNS
    tags:
      - DNS
      - DNS Information
      - DNS Security
      - Dynamic DNS
      - Email DNS Settings
  - name: Domain
    tags:
      - Domain
  - name: Domain Management
    tags:
      - Direct Link Protection (Hotlink)
      - Domain
      - Domain Information
      - Domain Redirection
      - SubDomain
      - Virtual Host Information
  - name: Email
    tags:
      - Email Accounts
      - Email Filtering
      - Email Forwarding
      - Email Server Information
      - Email Suspensions
      - Mail Server Information
      - Mailbox Management
      - Mailing Lists
      - Signing and Encryption (GnuPG Keys)
      - Spam Filtering (Greylisting)
      - Spam Management
      - Spam Prevention (BoxTrapper)
      - Webmail Applications
      - Webmail Sessions
  - name: Files
    tags:
      - FTP Accounts
      - FTP Server Settings
      - Image Tools
      - Manage Files
      - WebDisk Settings
  - name: GIT Management
    tags:
      - Deployment Settings
      - Repository Management
  - name: InProductSurvey
    tags:
      - InProductSurvey
  - name: MySQL and MariaDB
    tags:
      - Database Information
      - Database Management
      - Remote Databases
      - User Management
  - name: Notifications
    tags:
      - Pushbullet
  - name: Optional Applications
    tags:
      - Antivirus Protection (ClamAV)
      - Calendar and Contacts (DAV)
      - Calendar and Contacts Server
      - cPanel Addons (cPAddons)
      - WordPress Manager Backups
      - WordPress Manager Settings
  - name: PostgreSQL
    tags:
      - PostgreSQL Database Management
      - PostgreSQL User Management
  - name: Retrieve bandwidth information
    tags:
      - Bandwidth
  - name: Security
    tags:
      - Known SSH Hosts Management
      - Login Information
  - name: Server Information
    tags:
      - cPanel Server Information
      - Notifications
      - Password Strength
      - SSH
  - name: ServiceProxy
    tags:
      - ServiceProxy
  - name: Site Quality Monitoring
    tags:
      - SiteQuality
  - name: SSL Certificates
    tags:
      - Auto-generated SSL Certificates
      - cPanel Account SSL Management
      - SNI Email Settings
      - SSL Certificate Management
      - Verify Domain Ownership
  - name: Statistics
    tags:
      - Domain Statistics
      - Weblog Settings
  - name: UserData
    tags:
      - UserData
  - name: Web Server Configuration
    tags:
      - EA4
      - EasyApache Settings
      - PHP
  - name: Web Server Management
    tags:
      - Application Manager
      - ModSecurity
      - NginxCaching
      - PHP Settings
  - name: Website Configuration
    tags:
      - Handler Management
      - Logs
      - Mime Type Management
      - Pal
      - Site Information
      - Site Installation
      - Site Publisher Management
      - Sitejet
