openapi: 3.0.0
info:
  title: Knowledge Portal Manager APIs
  version: ''
  description: "### License\n  The following licenses are required to use the Knowledge Access APIs:\n  * If the user is an agent, then the *Knowledge + AI* license is required.\n  * If the user is a customer, the *Self-Service* and *Advanced Self-Service* licenses must be available.\n\n### Tiers\n\n| Tier\t|Tier Name|\tNamed Users |\tDescription\n| ---------- | ---------- | ---------- | ----------------------------\n| Tier 1 |  Starter |\tUp to 10|\tDesigned for small-scale implementations or pilot environments\n| Tier 2 |\tGrowth\t| Up to 1000|\tSuitable for mid-scale deployments requiring moderate scalability\n| Tier 3 |\tEnterprise\t| Greater than 1000|\tSupports large-scale environments with extended configuration options\n\n### API Resource Limits\nThe following Resources have predefined limits for specific access attributes for Starter, Growth and Enterprise use.\n\n| Resource | Limits | Starter | Growth | Enterprise\n| ---------------- | ---------------------------- | ---------- | ---------- | ----------\n| Article Reference |Number of attachments used in any article | 25 | 50 |50\n|  |Number of custom attributes in an article | 10 | 25| 50 \n|  |Number of publish views used in an article version | 20 | 20 | 20\n| Topic Reference |User-defined topics in a department| 1000| 5000 | 50000\n|  |Depth of topics  | 5 | 20 | 20\n|  |Topics at any level | 500 | 2500 | 2500\n|  |Number of custom attributes in a topic | 10 | 10 | 10\n| Portal Reference | Tag categories in a portal | 15 | 15 | 15\n|  |Topics to be included in a portal | 100 | 500 | 5000 \n|  |Number of articles to display in announcements | 10 | 25 | 25\n|  |Usage links and link groups setup for a portal | 5 | 10 | 25\n    \n      \n"
  contact:
    name: API Support
    email: apisupport@egain.com
    url: https://apidev.egain.com
servers:
  - url: https://api.egain.cloud/knowledge/portalmgr/v4
    description: Production Server
tags:
  - name: Article
    description: Article APIs
  - name: Article Lists
    description: Article List APIs
  - name: Bookmark
    description: Bookmark APIs
  - name: Guided Help
    description: Guided Help APIs
  - name: Popular Articles
    description: Popular Articles API
  - name: Portal
    description: Portal API
  - name: Search
    description: Search APIs
  - name: Suggestion
    description: Suggestion APIs
  - name: Topic
    description: Topic APIs
  - name: User Details
    description: User Details APIs
  - name: User Milestones
    description: User Milestones APIs
  - name: User Profile
    description: UserProfile APIs
  - name: Federated Search Event
    description: Federated Search Event API
  - name: Connectors Search Events
    description: Connectors Search Event APIs
  - name: Attachment
    description: Attachment Upload API
  - name: Export
    description: Content Export APIs
paths:
  /portals/{portalID}/articles/{articleID}:
    get:
      summary: Get Article by ID
      operationId: getArticleById
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          * The Get Article by ID API allows a user or client application to retrieve an Article using its ID.
            * It requires a Portal ID, which a user or client application can retrieve through the Administrative Console or by calling Get All Portals API.
            * Additional Article attributes and contextual views can be specified in the query parameters.

          * This API returns structured authoring attributes of Issue, Environment, Cause and Confidence Level when the following conditions are met:
            * The "Allow Structured Authoring" setting is enabled at the partition/department level through the Administrative Console.
            * The "Use Structured Authoring" flag is set on the article type.

        ## Prerequisites
          * Agents without a user profile and customers in a portal without a default user profile only have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain publish views without any associated tags.
          * Agents with a user profile and customers in a portal with a default user profile have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain publish views without any associated tags.
            * Contain access tags that are also in the assigned user profiles.
            * Contain publish views with associated tags that are also in the assigned user profiles.
          * Agents with the following assigned actions can view updates to articles currently being processed in workflows:
            * View Author Portal – Allows agents to view updates to articles at any stage in a workflow.
            * View Staging Portal – Allows agents to view updates to articles in the Staging stage or a subsequent stage in a workflow.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/articleAdditionalAttributes'
        - $ref: '#/components/parameters/customAdditionalAttributes'
        - name: accessSource
          in: query
          schema:
            type: string
            enum:
              - article_view
              - article_view_more_related_Article
              - article_view_basic_search
              - article_view_adv_search
              - article_view_guided_help
              - article_view_browse_topic
              - article_view_browse_tree
              - article_view_popular_articles
              - article_view_useful_items
              - article_view_widget
              - article_view_announcement
              - article_view_bookmarked
              - article_view_subscription_notification
              - article_view_guided_help_additional_info
              - view_articles_pending_compliance
              - type_ahead_Suggestion
              - semantic_Suggestion
              - instant_answer
              - instant_answer_reference
            default: article_view
          description: >
            Provides information about the method in which the Article is
            accessed and is used for self-service analytics. Refer to the eGain
            User Guide regarding "Article View Contexts".


            | Name | Description 

            | ---- | -----------

            | article_view | View an Article directly using its ID.

            | article_view_more_related_Article  | View related articles of an
            Article using its ID.

            | article_view_basic_search | View an Article via a basic search.

            | article_view_adv_search | View an Article via an advanced search.

            | article_view_guided_help | View an Article via a Guided Help
            solution.

            | article_view_browse_topic | View an Article via browsing a topic.

            | article_view_browse_tree | View an Article via browsing a topic
            tree.

            | article_view_popular_articles | View an Article using the Popular
            Items list in the Self-Service portal.

            | article_view_useful_items | View Article using the Useful Items
            list in the Self-Service portal.

            | article_view_widget | View an Article via a widget.

            | article_view_announcement | View an Article from the announcement
            section in the Self-Service portal.

            | article_view_bookmarked | View a bookmarked Article.

            | article_view_subscription_notification | View an Article from a
            subscription notification.

            | article_view_guided_help_additional_info | View an Article via
            additional information from a Guided Help search.

            | view_articles_pending_compliance | View an Article via Read & Sign
            in the Self-Service portal.

            | type_ahead_Suggestion | View an Article from a type-ahead
            Suggestion in the Self-Service portal.

            | semantic_Suggestion | View an Article from a semantic Suggestion
            in the Self-Service portal.

            | instant_answer | View an Article via an Instant Answers solution.

            | instant_answer_reference | View an Article that is used as a
            reference for an Instant Answers solution.
          example: article_view
        - name: publishViewId
          in: query
          schema:
            type: string
            minLength: 7
            maxLength: 20
            pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of a publish view for an Article. A publish view is a set of
            tags used to generate multiple editions of the same Article for
            display on the self-service portal. Publish views are used in
            conjunction with single sourcing to tailor the content of an Article
            to a specific audience by granting access to an Article's version to
            users that possess the same tags.<br><br>A publish view ID is
            composed of a 4-letter prefix, followed by a dash and 4-15 digits.
          examples:
            Readable Id:
              value: PROD-3203
              description: A readable publish view ID.
        - $ref: '#/components/parameters/workflowMilestone'
      responses:
        '200':
          $ref: '#/components/responses/ArticleGetByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /articles/{articleID}/witheditions:
    get:
      summary: Get Article By ID with Editions
      operationId: getArticleByIdWithEditions
      tags:
        - Article
      security:
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      description: |
        ## Overview
          * This API allows a user to retrieve an article with all its editions.
          * If there are no editions for the article, the response will contain the base content of the article.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/articleReadableId'
        - $ref: '#/components/parameters/mandatoryLanguageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/ArticleGetByIdWithEditionsResponse'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /articles/{articleID}/editions/{publishViewId}:
    get:
      summary: Get Article Edition Details
      operationId: getArticleEditionDetails
      tags:
        - Article
      security:
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      description: |
        ## Overview
          * This API retrieves the details of an article edition.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/articleId'
        - $ref: '#/components/parameters/readablePublishViewId'
        - $ref: '#/components/parameters/mandatoryLanguageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/ArticleEditionDetailsResponse'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /articletypes:
    get:
      summary: Get All Article Types in a Department
      operationId: getAllArticleTypes
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: >
        ## Overview

        The Get All Article Types in a Department API retrieves a list of all
        Article Types configured for a specific department.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - name: departmentID
          description: The ID of the department.
          in: query
          required: true
          schema:
            type: string
            pattern: ^999$|^[1-9][0-9]{3,8}$
            minLength: 3
            maxLength: 8
            example: '999'
      responses:
        '200':
          $ref: '#/components/responses/ArticleTypesGetByDepartmentResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/breadcrumb:
    get:
      summary: Get Topic Breadcrumb for Article
      operationId: getTopicBreadcrumbForArticle
      tags:
        - Topic
      security:
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      description: |
        ## Overview
          * Use this API to retrieve the topic breadcrumb for an article in a portal. A breadcrumb shows the hierarchical path from the root topic to the article's primary topic.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
        - $ref: '#/components/parameters/mandatoryLanguageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetTopicBreadCrumb'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/addtoreply:
    put:
      tags:
        - Article
      summary: Add Article to Reply
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      operationId: AddToReply
      description: >
        ## Overview

        The Add Article to Reply API captures events for articles used in a
        reply for a digital channel activity.


        Note:  Either the <code>x-ext-activity-id</code>
        or<br><code>x-ext-integration-id</code> and
        <code>x-ext-interaction-id</code> header must be provided.


        ## Permissions
          * Only Agents can invoke this API.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/accept'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArticleActivityLink'
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/addasreference:
    put:
      tags:
        - Article
      summary: Add as Reference
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      operationId: AddAsReference
      description: >
        ## Overview

        The Add as Reference API captures events for articles that are
        referenced by agents replying inside of a digital channel activity.


        Note: Either the <code>x-ext-activity-id</code>
        or<br><code>x-ext-integration-id</code> and
        <code>x-ext-interaction-id</code> header must be provided.


        ## Permissions
          * Only Agents can invoke this API.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/accept'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArticleActivityLink'
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles:
    get:
      summary: Get Articles in Topic
      operationId: getArticlesInTopic
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      description: >
        ## Overview

        The Get Articles in Topic API allows a user to retrieve the browsable
        articles in a topic.


        ## Prerequisites
          * Set the Article type’s parameter “Include in browse on portals” to "Yes" for an article to be returned by this API.
          * Agents without a user profile and customers in a portal without a default user profile only have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain published views without any associated tags.
          * Agents with a user profile and customers in a portal with a default user profile have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain publish views without any associated tags.
            * Contain access tags that are also in the assigned user profiles.
            * Contain publish views with associated tags that are also in the assigned user profiles.
          
        ## Permissions  
          * Agents with the following assigned actions can view updates to articles currently being processed in workflows:
            * View Author Portal – Allows agents to view updates to articles at any stage in a workflow.
            * View Staging Portal – Allows agents to view updates to articles in the Staging stage or a subsequent stage in a workflow.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/searchProfileId'
        - $ref: '#/components/parameters/filterTopicIdRequired'
        - $ref: '#/components/parameters/articleResultAdditionalAttributes'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/workflowMilestone'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
        - $ref: '#/components/parameters/articleSort'
        - $ref: '#/components/parameters/articleSortOrder'
      responses:
        '200':
          $ref: '#/components/responses/ArticlesInTopicResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /articles/attachments/{attachmentID}:
    get:
      summary: Get Article Attachment By ID
      operationId: getArticleAttachmentById
      tags:
        - Article
      security:
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      description: |
        ## Overview
          This API allows one article attachment identified by an attachment ID to be retrieved.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/attachmentId'
      responses:
        '200':
          $ref: '#/components/responses/AttachmentGetByIdClientAppResponse'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_client_app'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/attachments/{attachmentID}:
    get:
      summary: Get Article Attachment in Portal
      operationId: getAttachmentByIdInPortal
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: >
        ## Overview

        The Get Article Attachment API retrieves an attachment associated to an
        article by calling the attachment ID for a specified portal ID.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/attachmentId'
        - $ref: '#/components/parameters/languageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetAttachmentByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/related:
    get:
      summary: Get Related Articles
      operationId: getRelatedArticles
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: >
        ## Overview

        The Get Related Articles API retrieves all related articles associated
        to a given article.


        ## Prerequisites
          * Set the Article type’s parameter “Include in browse on portals” to "Yes" for an article to be returned by this API.
          * Agents without a user profile and customers in a portal without a default user profile only have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain publish views without any associated tags.
          * Agents with a user profile and customers in a portal with a default user profile have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain publish views without any associated tags.
            * Contain access tags that are also in the assigned user profiles.
            * Contain publish views with associated tags that are also in the assigned user profiles.

        ## Permissions 
          * Agents with the following assigned actions can view updates to articles currently being processed in workflows:
            * View Author Portal – Allows agents to view updates to articles at any stage in a workflow.
            * View Staging Portal – Allows agents to view updates to articles in the Staging stage or a subsequent stage in a workflow.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/articleResultAdditionalAttributes'
        - $ref: '#/components/parameters/workflowMilestone'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/RelatedArticlesResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/announcements:
    get:
      tags:
        - Article
      summary: Get Announcement Articles
      operationId: getAnnouncementArticles
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: >
        ## Overview

        The Get Announcement Articles API returns a portal's announcement
        articles. Only displayable announcement articles in the portal are
        returned. 


        ## Prerequisites
          * For an article to display or be returned, set the Article type’s parameter, “Include in browse on portals,” to "Yes".
          * Agents without a user profile and customers in a portal without a default user profile only have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain publish views without any associated tags.
          * Agents with a user profile and customers in a portal with a default user profile have access to articles that:
            * Do not contain any access tags.
            * Do not contain any publish views.
            * Contain publish views without any associated tags.
            * Contain access tags that are also in the assigned user profiles.
            * Contain publish views with associated tags that are also in the assigned user profiles.

        ## Permissions 
          * Agents with the following assigned actions can view updates to articles currently being processed in workflows:
            * View Author Portal – Allows agents to view updates to articles at any stage in a workflow.
            * View Staging Portal – Allows agents to view updates to articles in the Staging stage or a subsequent stage in a workflow.
            
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/articleResultAdditionalAttributes'
        - $ref: '#/components/parameters/workflowMilestone'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/AnnouncementArticlesResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/ratings:
    get:
      summary: Get Article Ratings
      operationId: getArticleRatings
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: >
        ## Overview

        The Get Article Ratings API returns ratings set for an Article. These
        ratings help you to assess the quality, helpfulness, or relevance of an
        article. 
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/GetArticleRatingsResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Rate an Article
      operationId: rateArticle
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      description: >
        ## Overview

        The Rate an Article API allows a user to set a rating for an article.
        These ratings allow you to assess the quality, helpfulness, or relevance
        of an article. 
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - name: score
          description: A positive number. Each portal can have its own scoring guidelines.
          in: query
          required: true
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 100
            example: 10
        - name: comments
          description: A comment about the Article rating.
          in: query
          required: false
          schema:
            type: string
            pattern: ^[\w\W]+$
            minLength: 1
            maxLength: 255
          example: Accepted
      responses:
        '201':
          description: Created.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/compliance/pending:
    get:
      summary: Get Pending Article Compliances
      operationId: getPendingComplianceArticles
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: >
        ## Overview

        The Get Pending Article Compliances API retrieves all compliance-enabled
        articles in a portal that need to be read by the current user. Results
        are sorted in ascending order of the compliance due date.


        ## Prerequisites

        * The Article compliances that are returned must be:
            * Available for the current user profile.
            * Displayable. An article is displayable when the "Include in browse on portals" property is enabled for the article.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/complianceArticleResultAdditionalAttributes'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/PendingArticleComplianceResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/compliance/acknowledged:
    get:
      summary: Get Acknowledged Article Compliances
      operationId: getAcknowledgedComplianceArticles
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: >
        ## Overview

        The Get Acknowledged Article Compliances API retrieves all
        compliance-enabled articles in a portal that have been read by the
        current user in the last 60 days. Results are sorted in descending order
        of the acknowledgement date.


        ## Prerequisites

        * The Article compliances that are returned must be:
            * Available for the current user profile.
            * Displayable. An article is displayable when the "Include in browse on portals" property is enabled for the article.
            * Acknowledged within the last 60 days.
            * Only the latest version of a republished compliance article will be shown.
            * Results will be sorted in descending order of acknowledgment date.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/complianceArticleResultAdditionalAttributes'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/AcknowledgedArticleComplianceResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/comply:
    put:
      summary: Comply With an Article
      operationId: complyArticle
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      description: >
        ## Overview

        The Comply with an Article API allows the user to comply with an article
        by passing the Article's ID, which marks it as read by the
        user.            


        ## Prerequisites
          * The user must be an agent and:
            * Be available in the portal.
            * Be available for the current user profile.
            * Have the Article's compliance policy enabled.
          * If the Article has Access Tags, then it must be available for the agent's current user profile.
          * If the Article has Publish Views, then at least one edition of the Article must be available for the agent's current user profile.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/subscribed:
    get:
      summary: My Subscription
      operationId: getMySubscription
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: >
        ## Overview

        The My Subscription API allows authenticated users and agents to
        retrieve the list of articles to which they are subscribed.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/workflowMilestone'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
        - $ref: '#/components/parameters/articleResultAdditionalAttributes'
      responses:
        '200':
          $ref: '#/components/responses/SubscribedArticleResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/subscribe:
    put:
      summary: Subscribe to an Article
      operationId: subscribeArticle
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      description: >
        ## Overview

        The Subscribe to an Article API allows eGain users, authenticated
        customers and agents to subscribe and receive notifications about
        changes to an Article.


        ## Prerequisites
          * Notifications are sent only if the following conditions are met:
            * The Article content has been modified since the last published version.
            * The attachment list has been modified since the last published version.
            * The author has checked the "Include Article in new and modified Article list" option while publishing the Article.
          * For the Subscribe to an Article API to execute successfully:
            * The Article must be in the portal.
            * The user must have provided an email address.

        ## Permissions
          * Agent Permissions: The following permissions are required if the user is an agent:
            * If the Article has Access Tags:
              * The Article must be available for the agent's current user profile.
            * If the Article has Publish Views:
              * At least one edition of the Article must be available for the agent's current user profile.
            * If the Article has filters and the "tags query parameter" is provided:
              * The Article filters must match the provided tags or tag groups.
          * Customer Permissions: The following permissions are required if the user is a customer:
            * If the Article has Access Tags:
              * The portal must have a default user profile
              * The Article must be available for the portal's default user profile.
            * If the Article has Publish Views:
              * The portal must have a default user profile
              * At least one edition must be available for the portal's default user profile.
            * If the Article has filters and the "tags query parameter" is provided, then the Article filters must match the provided tags or tag groups.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/unsubscribe:
    put:
      summary: Unsubscribe to an Article
      operationId: unsubscribeArticle
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      description: >
        ## Overview

        The Unsubscribe to an Article API allows authenticated users and agents
        to unsubscribe to an Article for which they were earlier subscribed to
        receive change notifications.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
        - name: unsubscriptionToken
          in: query
          required: false
          schema:
            type: string
            pattern: ^[\w\W]*$
          description: >-
            An encrypted token that contains information about
            "object/userId/userType/userProfileId". This is used to unsubscribe
            the user from Article change notifications sent via email, without
            necessitating that the user be logged into the eGain application.
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/topics/{topicID}:
    get:
      summary: Get Immediate Child Topics
      operationId: getchildtopics
      tags:
        - Topic
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      description: |
        ## Overview
          The Get Immediate Child Topics API retrieves details about a topic and it's immediate child topics. The <code>$level</code> attribute determines how deep the topic hierarchy should go, or how many child topics of a topic are returned in the response.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/searchProfileId'
        - $ref: '#/components/parameters/topicReadableId'
        - $ref: '#/components/parameters/level'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/topicAdditionalAttributes'
        - $ref: '#/components/parameters/customAdditionalAttributes'
        - $ref: '#/components/parameters/pagenumTopics'
        - $ref: '#/components/parameters/pagesizeTopics'
      responses:
        '200':
          $ref: '#/components/responses/GetTopicByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/topics/{topicID}/parents:
    get:
      summary: Get All Ancestor Topics
      operationId: getancestortopics
      tags:
        - Topic
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          The Get All Ancestor Topics API retrieves the hierarchy from the root topic down to the given topic.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/topicReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/topicAdditionalAttributes'
        - $ref: '#/components/parameters/customAdditionalAttributes'
        - $ref: '#/components/parameters/pagenumTopics'
        - $ref: '#/components/parameters/pagesizeTopics'
      responses:
        '200':
          $ref: '#/components/responses/GetParentTopicsResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/topics:
    get:
      summary: Get All Topics
      operationId: getalltopics
      tags:
        - Topic
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          The Get All Topics API retrieves the topic tree for a portal. The <code>$level</code> attribute determines how deep the topic hierarchy should go, or how many child topics of a topic are returned in the response.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/searchProfileId'
        - $ref: '#/components/parameters/level'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/topicAdditionalAttributes'
        - $ref: '#/components/parameters/customAdditionalAttributes'
        - $ref: '#/components/parameters/pagenumTopics'
        - $ref: '#/components/parameters/pagesizeTopics'
      responses:
        '200':
          $ref: '#/components/responses/GetAllTopicsResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/populararticles:
    get:
      summary: Get Popular Articles
      operationId: getpopulararticles
      tags:
        - Popular Articles
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          The Popular Articles API allows a user to retrieve popular articles. 
        ## Prerequisites 
            * Only displayable articles are returned. An Article is displayable when "Include in browse on portals" property is enable for the Article. 
        ## Permissions
          * Agent permissions: The following permissions are required if user is an Agent:
            * If Article has Access Tags, Article must be available for agent's current user profile.
            * If Article has Publish Views, at least one edition of Article must be available for agent's current user profile.
            * If Article has filters and tags query parameter provided, Article filters must match provided tags or tag groups.
          * Customer permissions: The following permissions are required if user is a Customer:              
              * If Article has Access tags: 
               * Portal must have default user profile, and;
               * Article must be available for portal's default user profile.
            * If Article has Publish Views:
              * Portal must have default user profile, and;
              * At least one edition must be available for portal's default user profile.
            *  If Article has filters and tags query parameter provided, Article filters must match provided tags or tag groups.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/filterTopicId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/tags'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
        - $ref: '#/components/parameters/articleResultAdditionalAttributes'
      responses:
        '200':
          $ref: '#/components/responses/GetPopularArticlesResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/casebasereleases:
    get:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      summary: Get Available Casebases Releases
      operationId: getAllCasebasesReleases
      description: |
        ## Overview
          The Get Available Casebases Releases API retrieves all Casebase Releases associated with a portal.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/GetAllCasebaseReleasesResponse'
        '204':
          description: When no Casebase Release is associated with the portal.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/casebasereleases/{casebaseReleaseID}:
    get:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      summary: Get Details of a Casebase Release
      operationId: getCasebaseReleaseById
      description: |
        ## Overview
          The Get Details of a Casebase Release API retrieves details of Casebase Release.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/casebaseReleaseId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - name: languages
          in: query
          schema:
            type: boolean
            default: true
          description: Display langages of Casebase Releases.
      responses:
        '200':
          $ref: '#/components/responses/GetCasebaseReleaseByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/casebasereleases/{casebaseReleaseID}/clusters:
    get:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      summary: Get Cluster Details of a Casebase Release
      operationId: getClusterByCasebaseReleaseId
      description: |
        ## Overview
          The Get Cluster Details of a Casebase Release API retrieves cluster details of Casebase Release.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/casebaseReleaseId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/getClusterByCasebaseReleaseIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/profiles:
    get:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      summary: Get All Profiles Available in Portal
      operationId: getAllProfilesInPortal
      description: |
        ## Overview
          The Get All Profiles Available in Portal API retrieves all Guided Help profiles associated with a portal.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/filterCasebaseRelease'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/GetAllProfilesInPortal'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/search:
    post:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      summary: Start a Guided Help Search
      operationId: startGHSearch
      description: |
        ## Overview
           The Start a Guided Help search can be used to start a search session in the Guided Help. 
           
           A Guided Help profile can also be specified while starting the session and it is used to filter the results of search.
           If this is not passed in the request, the default profile of the portal is used. Questions can also be answered at time of starting the search session. 
           
           A Guided Help search session can be started in following ways:
           * Launch session for a specific Casebase Release.
           * Launch session for a Casebase and specify the release type.
           * Use a Guided Help session Article and pass the required session parameters.

        ## Prerequisites
           * A Guided Help profile must be assigned to the user.
           * Casebase Release passed in the request must be associated with the portal passed in URI. 
           
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/ghCustomAdditionalAttributes'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GHSearchRequest'
            examples:
              Start Search With Casebase:
                value:
                  casebaseId: '202201000000002'
              Start Search With GHS ArticleId:
                value:
                  casebaseId: '202201000000002'
                  ghsArticleId: '123456000000000'
      responses:
        '200':
          $ref: '#/components/responses/GHStartSearchResponse'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '429':
          $ref: '#/components/responses/429_too_many_request'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      summary: Perform a Step in a Guided Help Search
      operationId: stepGHSearch
      description: |
        ## Overview
           The Perform a Step in a Guided Help Search API can be used to answer one or more questions (perform a step) in Guided Help search.

        ## Prerequisites
           * A Guided Help session must be in progress before this API is invoked.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/ghCustomAdditionalAttributes'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GHStepSearchRequest'
            examples:
              PerformStepWithGHSearch:
                value:
                  casebaseId: '202201000000002'
                  questions:
                    - id: '1000000322'
                      answers:
                        - id: '1000000303'
                    - id: '1000000327'
                      answers:
                        - id: '1000000842'
                    - id: '1000001006'
                      answers:
                        - id: '1000001001'
                  useLiveRelease: true
      responses:
        '200':
          $ref: '#/components/responses/GHStepSearchResponse'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/casebasereleases/{casebaseReleaseID}/clusters/{clusterID}/cases:
    get:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      summary: Get All Cases of a Cluster in Release
      operationId: getAllCases
      description: |
        ## Overview
          The Get All Cases of a Cluster in Release API retrieves all cases in cluster of a Casebase Release. A Case is a group of Questions, Articles, and control actions that work together to guide users through a series of questions and scenarios in a Guided Help session.  

        ## Prerequisites
          A Guided Help search session for the provided Casebase Release must be in progress before this API is invoked.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/casebaseReleaseId'
        - $ref: '#/components/parameters/clusterId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/GetAllCasesInReleaseResponse'
        '204':
          description: When no cases are present in cluster.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/casebasereleases/{casebaseReleaseID}/cases/{caseID}:
    get:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      summary: Get Details of a Case
      operationId: getCaseById
      description: |
        ## Overview
          The Get Details of a Case API retrieves details of a case in a release.

        ## Prerequisites
          * A Guided Help search session for the provided Casebase Release must be in progress before this API is invoked.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/casebaseReleaseId'
        - $ref: '#/components/parameters/caseId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/caseAdditionalAttributes'
      responses:
        '200':
          $ref: '#/components/responses/GetCaseByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/cases/{caseID}/accept:
    post:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      summary: Accept Solution
      operationId: acceptGHSolution
      description: |
        ## Overview
          The Accept Solution API can be used to accept and add positive score to a solution of a Guided Help case.

        ## Prerequisites
           * A Guided Help search session must be started before invoking this API.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/caseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuickpickRating'
            example:
              id: '120000001201010'
              name: HPE Solution Article
              profileId: '120450120000001'
      responses:
        '201':
          description: Rating accepted
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '412':
          $ref: '#/components/responses/412_precondition_failed'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/cases/{caseID}/reject:
    post:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      summary: Reject Solution
      operationId: rejectGHSolution
      description: |
        ## Overview
          The Reject Solution API can be used to reject and add negative score to a solution of a Guided Help case.

        ## Prerequisites
           * A Guided Help search session must be started before invoking this API.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/caseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuickpickRating'
            example:
              id: '123101210000102'
              name: HPE Solution Article
              profileId: '100101210000002'
      responses:
        '201':
          description: Rating accepted
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '412':
          $ref: '#/components/responses/412_precondition_failed'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/quickpicks:
    post:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      summary: Create Quickpick
      operationId: createQuickpick
      description: |
        ## Overview
           The Create Quickpick API can be used to create a new quickpick(bookmark) for current Guided Help search session.

          Note: If "linkToActivity" attribute is passed as true in request body then one of below must be passed in header
           * <code>XEgainTenantId</code>
           * <code>xEgainActivityId</code>
           * <code>XInteractionId</code>

        ## Prerequisites
           * A Guided Help search session must be in progress before this API is invoked.
           * QuickPick can only be created for a live release of a Casebase.
           
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateQuickpick'
            examples:
              Create Quickpick:
                value:
                  casebaseReleaseId: '102312010000000'
                  name: QuickPick82700245
                  comment: demo quickpick
                  linkToActivity: false
              Create Quickpick And Link With Activity:
                value:
                  casebaseReleaseId: '123459870010120'
                  name: QuickPick8270033
                  comment: demo quickpick
                  linkToActivity: true
      responses:
        '201':
          description: Quickpick Created Successfully.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      summary: Get All Quickpicks for a Portal
      operationId: getAllQuickPicks
      description: |
        ## Overview
          The Get All Quickpicks for a Portal API retrieves details of quickpicks created for the Casebase.

        ## Conditions
           If "getLastSavedQuickPickForInteraction" query parameter is passed as "Yes" then one of below must be passed in request header.
           * X-ext-integration-id
           * X-egain-activity-id
           * X-ext-interaction-id
          Either casebaseID or getLastSavedQuickPickForInteraction must be passed in request.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/casebaseReleaseIdQuery'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
        - name: getLastSavedQuickPickForInteraction
          in: query
          required: false
          description: To be passed retrieve quickpick associated with interaction.
          schema:
            type: boolean
      responses:
        '200':
          $ref: '#/components/responses/GetAllQuickPicksResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/gh/quickpicks/{quickpickID}:
    post:
      tags:
        - Guided Help
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      summary: Resume a Quickpick
      operationId: restoreQuickpick
      description: |
        ## Overview
          The Resume a Quickpick API can be used to restore (resume) a specific quickpick.

        ## Prerequisites
           * A Guided Help session for the Casebase must be started before invoking this API.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/quickpickReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/ghCustomAdditionalAttributes'
      responses:
        '200':
          $ref: '#/components/responses/RestoreQuickPicksResponse'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/bookmarks:
    post:
      tags:
        - Bookmark
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      summary: Add a Bookmark
      operationId: addbookmark
      description: |
        ## Overview
          * The Add a Bookmark API adds a bookmark from a portal.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBookmark'
            examples:
              Bookmark Topic With Bookmark Name Provided:
                value:
                  resourceId: PROD-9274782
                  resourceType: 2
                  bookmarkName: DemoBookmark
              Bookmark Article Without Bookmark Name:
                value:
                  resourceId: PROD-9296739
      responses:
        '201':
          description: Created
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
        - Bookmark
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      summary: Get All Bookmarks for a Portal
      operationId: getbookmark
      description: |
        ## Overview
          The Get All Bookmarks for a Portal API returns all bookmarks for a portal. Only the topic bookmarks that are available in the scope of the portal are returned.

        ## Permissions
          * The user must have the __View Author Portal__ action to access the authoring view.
          * The user must have the __View Staging Portal__ action to access the staging view.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
      responses:
        '200':
          $ref: '#/components/responses/GetBookmarksResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/bookmarks/{bookmarkID}:
    delete:
      tags:
        - Bookmark
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      summary: Delete a Bookmark
      operationId: deletebookmark
      description: |
        ## Overview
          The Delete a Bookmark API deletes a bookmark from a portal.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/bookmarkId'
      responses:
        '204':
          description: Bookmark successfully deleted.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/userprofiles:
    get:
      tags:
        - User Profile
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      summary: Get All User Profiles Assigned to User
      operationId: getAllUserProfiles
      description: |
        ## Overview
          The Get All User Profiles Assigned to User API retrieves all user profiles in the portal that are assigned to the user, displayed in ascending order of name.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetAllProfilesAssignedToUserResponse'
        '204':
          description: When no profiles are assigned to user.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/userprofiles/{userProfileID}/select:
    put:
      summary: Select User Profile
      operationId: selectUserProfile
      tags:
        - User Profile
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      description: |
        ## Overview
          The Select User Profile API allows a user to set the user profile for a portal.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/userProfileIdInPath'
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/user:
    get:
      tags:
        - User Details
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      summary: Get User Details
      operationId: getUserDetails
      description: |
        ## Overview
          The Get User Details API retrieves details of a knowledge user.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
      responses:
        '200':
          $ref: '#/components/responses/GetUserDetailsResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articlelists:
    get:
      summary: Get All Article Lists
      operationId: getAllArticleLists
      tags:
        - Article Lists
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          The Get All Article Lists API returns all quick Article lists that are configured for a portal.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetArticleListsInPortalResponse'
        '204':
          description: No Article Lists Configured in Portal
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articlelists/{listID}:
    get:
      summary: Get Article List by ID
      operationId: getArticleListDetails
      tags:
        - Article Lists
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          The Get Article Lists by ID API returns the details of a quick access Article list that is configured for a portal.

          Only those articles in the quick access list articles are returned and are:

          - Available for current user profile.
          - Tagged with at least one of the provided tags, if tags query parameter is provided.
          - Displayable. An Article is displayable if "Include in browse on portals" property is enable for the Article. 
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - name: listID
          description: The ID of the list to be returned.
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]{4}$|^[a-zA-Z0-9]{2,4}-\d{4,15}$
            minLength: 4
            maxLength: 20
            example: PROD-12345
        - $ref: '#/components/parameters/filterTopicId'
        - $ref: '#/components/parameters/articleResultAdditionalAttributes'
        - $ref: '#/components/parameters/languageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetArticleListByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals:
    get:
      summary: Get All Portals
      operationId: getAllPortals
      tags:
        - Portal
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          The Get All Portals API returns all portals in a partition or department.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - name: departmentID
          description: The ID of the department.
          in: query
          required: false
          schema:
            type: string
            pattern: ^999$|^[1-9][0-9]{3,8}$
            minLength: 3
            maxLength: 8
            example: '999'
        - $ref: '#/components/parameters/languageQueryParameter'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesize'
      responses:
        '200':
          $ref: '#/components/responses/GetAllPortalsResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /myportals:
    get:
      summary: Get All Portals Accessible To User
      operationId: getMyPortals
      tags:
        - Portal
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get All Portals Accessible to User API allows a user to fetch all portals accessible to user across all department.
          * If no access tags are specified for a portal, then any user can access the portal.
          * If access tags are specified for a portal, users with a user profile that allows access have access to the portal. For users with multiple user profiles, the user profile that allows access does not need to be the active user profile.
          * All the global users(partition) cannot be assigned user profiles; their access is limited to portals without access restrictions.
          * The only articles returned are associated to an Article type when the parameter, “Include in browse on portals” is set to "Yes".
          * When the "shortUrlTemplate" query parameter is provided, the API filters accessible portals according to the specified language and template name. Portal Short URL specific to to the "shortUrlTemplate" query parameter value is returned in the response.
          * When there is no short URL available for a specific language, the API returns a portal object with an empty "shortURL" field.
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/mandatoryLanguageQueryParameter'
        - name: department
          description: The Name of the department for which portals are to be fetched
          in: query
          required: false
          schema:
            type: string
            example: service
            pattern: ^[\w\W]+$
            minLength: 0
            maxLength: 255
        - name: filterText
          description: >-
            Portal name starting with a specific character are considered to
            filter the result.
          in: query
          required: false
          schema:
            type: string
            example: master
            pattern: ^[\w\W]+$
            minLength: 0
            maxLength: 255
        - name: shortUrlTemplate
          description: The Name of the template used while creating Short URL.
          in: query
          required: false
          schema:
            type: string
            example: silver
            pattern: ^[\w\W]+$
            minLength: 0
            maxLength: 255
        - $ref: '#/components/parameters/sortIdNameDepartment'
        - $ref: '#/components/parameters/order'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesizeNewFrameWork'
      responses:
        '200':
          $ref: '#/components/responses/GetAllPortalsAccessibleToAgentResponse'
        '204':
          description: >-
            No Content If all the portals are personalized and user does not
            have any profile assigned
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}:
    get:
      summary: Get Portal Details By ID
      operationId: getPortalDetailsById
      tags:
        - Portal
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      description: |
        ## Overview
          The Get Portal Details By ID API allows a user to fetch details of a portal by the ID.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetPortalByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /{portalID}/search:
    get:
      summary: Hybrid Search
      tags:
        - Search
      operationId: aiSearch
      description: >
        The Search API is a hybrid search service that combines semantic
        understanding with keyword precision to deliver fast, contextual, and
        relevant results from your enterprise knowledge base. It enables secure,
        role-aware access to articles, FAQs, and documentation across customer,
        agent, and employee interfaces. Each query returns a ranked list of
        results with snippets, metadata, and relevance scores.
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      parameters:
        - $ref: '#/components/parameters/q'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/filterUserProfileID'
        - $ref: '#/components/parameters/languageCode'
        - $ref: '#/components/parameters/filterTags'
        - $ref: '#/components/parameters/filterTopicIds'
        - $ref: '#/components/parameters/articleCustomFields'
        - $ref: '#/components/parameters/aispagenum'
        - $ref: '#/components/parameters/aispagesize'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AISearchResponse'
              example:
                searchResults:
                  article:
                    - id: PROD-2731
                      name: What Does Loan Closing Mean?
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        Closing, generally, is when you sign your <span
                        class="hc" style="background: #FFFF00">loan</span>
                        documents and become obligated on the mortgage <span
                        class="hc" style="background: #FFFF00">loan</span>, and,
                        in a purchase transaction, when the seller signs
                        documents to transfer you title to the property. The
                        timing may depend on state laws and local practices.
                      keywordSnippet: >-
                        Closing, generally, is when you sign your <span
                        class="hc" style="background: #FFFF00">loan</span>
                        documents and become obligated on the mortgage <span
                        class="hc" style="background: #FFFF00">loan</span>, and,
                        in a purchase transaction, when the seller signs
                        documents to transfer you title to the property. The
                        timing may depend on state laws and local practices.
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T15:11:33.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Loans
                              id: PROD-1070
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-1022
                            - PROD-2196
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.8953199783507835
                    - id: PROD-2680
                      name: What Information Will I Need to Apply for a Loan?
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        Please have your personal information, annual income and
                        any applicable collateral information available to
                        apply.
                      keywordSnippet: >-
                        Please have your personal information, annual income and
                        any applicable collateral information available to
                        apply.
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T15:12:21.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Loans
                              id: PROD-1070
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-2196
                            - PROD-1022
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.8881018533023683
                    - id: PROD-2679
                      name: Can I have a Co-Signer?
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        ...Yes, A Co-Signer is <span class="hc"
                        style="background-color: #FFFF00">someone who agrees to
                        be responsible for someone else’s debt</span>. If you
                        cosign someone’s loan and that person doesn’t make
                        payments on the loan or defaults, you’ll have to repay
                        the l...
                      keywordSnippet: ''
                      additionalSnippets:
                        - id: PROD-2679
                          name: Can I have a Co-Signer?
                          docType: HTML
                          snippet: >-
                            ...Yes, A Co-Signer is <span class="hc"
                            style="background-color: #FFFF00">someone who agrees
                            to be responsible for someone else’s debt</span>. If
                            you cosign someone’s loan and that person doesn’t
                            make payments on the loan or defaults, you’ll have
                            to repay the l...
                          keywordSnippet: ''
                          normalizedScore: 0.8472550848151883
                        - id: PROD-2679
                          name: Can I have a Co-Signer?
                          docType: HTML
                          snippet: >-
                            ...Yes, A Co-Signer is <span class="hc"
                            style="background-color: #FFFF00">someone who agrees
                            to be responsible for someone else’s debt</span>. If
                            you cosign someone’s loan and that person doesn’t
                            make payments on the loan or defaults, you’ll have
                            to repay the l...
                          keywordSnippet: ''
                          normalizedScore: 0.8472550848151883
                      additionalSnippetCount: 2
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T15:09:06.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Loans
                              id: PROD-1070
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-2196
                            - PROD-1022
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.8485992046672263
                    - id: PROD-2681
                      name: What is a Co-Signer? Requirements for a Co-Signer?
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        ...A co-signer is <span class="hc"
                        style="background-color: #FFFF00">a person who is
                        obligated to pay back the loan</span> just as you, the
                        borrower, are obligated to pay.
                      keywordSnippet: ''
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-12-08T21:15:56.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Loans
                              id: PROD-1070
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-1022
                            - PROD-2196
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.760438771174426
                    - id: PROD-2575
                      name: Glossary of Terms
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        ...Glossary of Terms 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 A Account A type of <span class="hc"
                        style="background-color: #FFFF00">financial property or
                        financial obligation that is held and owned under your
                        name</span>. When you open a financial account—whether
                        it’s a checking account, savings account, CD or money
                        market accou...
                      keywordSnippet: ''
                      additionalSnippets:
                        - id: PROD-2575
                          name: Glossary of Terms
                          docType: HTML
                          snippet: >-
                            ...Glossary of Terms 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 A Account A type of <span
                            class="hc" style="background-color:
                            #FFFF00">financial property or financial obligation
                            that is held and owned under your name</span>. When
                            you open a financial account—whether it’s a checking
                            account, savings account, CD or money market
                            accou...
                          keywordSnippet: ''
                          normalizedScore: 0.7319947071366003
                        - id: PROD-2575
                          name: Glossary of Terms
                          docType: HTML
                          snippet: >-
                            ...Glossary of Terms 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 A Account A type of <span
                            class="hc" style="background-color:
                            #FFFF00">financial property or financial obligation
                            that is held and owned under your name</span>. When
                            you open a financial account—whether it’s a checking
                            account, savings account, CD or money market
                            accou...
                          keywordSnippet: ''
                          normalizedScore: 0.7312969754401869
                        - id: PROD-2575
                          name: Glossary of Terms
                          docType: HTML
                          snippet: >-
                            ...pay it back later. <span class="hc"
                            style="background-color: #FFFF00">Deposit Funds
                            added to your account. Direct deposit An automatic
                            deposit to your account made by your employer or an
                            outside agency (such as a pension or government
                            benefit payment). These are usually recurring and
                            spare you the hassle of depositing a paper
                            check</span>. Online transfers ...
                          keywordSnippet: ''
                          normalizedScore: 0.590190242899371
                        - id: PROD-2575
                          name: Glossary of Terms
                          docType: HTML
                          snippet: >-
                            ...e checks and make deposits into the same shared
                            account. M Maturity date This is the date of
                            expiration for the contractual obligation of a <span
                            class="hc" style="background-color:
                            #FFFF00">financial instrument</span>. For example,
                            certificates of deposit have a maturity date that
                            depends on the length of the CD term. When the CD
                            matures, you have the opt...
                          keywordSnippet: ''
                          normalizedScore: 0.5901298016434594
                        - id: PROD-2575
                          name: Glossary of Terms
                          docType: HTML
                          snippet: >-
                            ...e checks and make deposits into the same shared
                            account. M Maturity date This is the date of
                            expiration for the contractual obligation of a <span
                            class="hc" style="background-color:
                            #FFFF00">financial instrument</span>. For example,
                            certificates of deposit have a maturity date that
                            depends on the length of the CD term. When the CD
                            matures, you have the opt...
                          keywordSnippet: ''
                          normalizedScore: 0.5901298016434594
                      additionalSnippetCount: 5
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T15:04:42.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Using Online Banking
                              id: PROD-1072
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-2196
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.7319947071366003
                    - id: PROD-2732
                      name: What is The Amortization Period?
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        ...This is <span class="hc" style="background-color:
                        #FFFF00">the repayment period</span> of a loan during
                        which payments of both principal and interest are
                        required to be made to pay down the balance on the loan
                        according to the...
                      keywordSnippet: ''
                      additionalSnippets:
                        - id: PROD-2732
                          name: What is The Amortization Period?
                          docType: HTML
                          snippet: >-
                            ...This is <span class="hc" style="background-color:
                            #FFFF00">the repayment period</span> of a loan
                            during which payments of both principal and interest
                            are required to be made to pay down the balance on
                            the loan according to the...
                          keywordSnippet: ''
                          normalizedScore: 0.6721146426033902
                      additionalSnippetCount: 1
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T15:13:19.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Loans
                              id: PROD-1070
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-2196
                            - PROD-1022
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.6721146426033902
                    - id: PROD-2615
                      name: Talk to a Banker - Home Loans
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        Whether you have questions about buying or refinancing a
                        home, applying for or paying off a mortgage or home
                        equity line of credit, or how the home lending process
                        works in general, we've got answers.

                        Make an appointment with a [Sample Company Name] Bank
                        today by visiting [Sample Website Address]...
                      keywordSnippet: >-
                        Whether you have questions about buying or refinancing a
                        home, applying for or paying off a mortgage or home
                        equity line of credit, or how the home lending process
                        works in general, we've got answers.

                        Make an appointment with a [Sample Company Name] Bank
                        today by visiting [Sample Website Address]...
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-12-08T21:15:34.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Loans
                              id: PROD-1070
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-1022
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.45921719114211856
                    - id: PROD-2997
                      name: Discriminitatory Lending Practices
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        <span class="hc" style="background: #FFFF00">What</span>
                        are some of the warning signs of lending discrimination?

                        The signs of lending discrimination may be blatant or
                        subtle. They can occur in the marketing of mortgage
                        <span class="hc" style="background: #FFFF00">loan</span>
                        products, mortgage <span class="hc" style="background:
                        #FFFF00">loan</span> transactions, terms and conditions
                        of the <span class="hc" style="background:
                        #FFFF00">loan</span>, in the appraisal of a home, and in
                        <span class="hc" style="background: #FFFF00">loan</span>
                        servicing.
                      keywordSnippet: >-
                        <span class="hc" style="background: #FFFF00">What</span>
                        are some of the warning signs of lending discrimination?

                        The signs of lending discrimination may be blatant or
                        subtle. They can occur in the marketing of mortgage
                        <span class="hc" style="background: #FFFF00">loan</span>
                        products, mortgage <span class="hc" style="background:
                        #FFFF00">loan</span> transactions, terms and conditions
                        of the <span class="hc" style="background:
                        #FFFF00">loan</span>, in the appraisal of a home, and in
                        <span class="hc" style="background: #FFFF00">loan</span>
                        servicing.
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T14:20:44.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Banking Regulations
                              id: PROD-1080
                        - topicSummary:
                            - name: Banking Regulations
                              id: PROD-1065
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-2930
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.2830405804592237
                    - id: PROD-2733
                      name: >-
                        What is the Difference Between Prequalification and
                        Preapproval?
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        Prequalification

                        The Banker collects estimates of your income and
                        liabilities to determine <span class="hc"
                        style="background: #FFFF00">what</span> mortgage
                        products may be available to you and <span class="hc"
                        style="background: #FFFF00">what</span> you can afford
                        to borrow. Our Mortgage Bankers can prequalify you by
                        phone, in some cases.
                      keywordSnippet: >-
                        Prequalification

                        The Banker collects estimates of your income and
                        liabilities to determine <span class="hc"
                        style="background: #FFFF00">what</span> mortgage
                        products may be available to you and <span class="hc"
                        style="background: #FFFF00">what</span> you can afford
                        to borrow. Our Mortgage Bankers can prequalify you by
                        phone, in some cases.
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T15:13:59.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Loans
                              id: PROD-1070
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-1022
                            - PROD-2196
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.18605361669534096
                    - id: PROD-2583
                      name: Using Zelle
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        ...lle you can send money to friends, family and almost
                        anyone you know and trust, no matter where they bank in
                        the U.S. Why Use Zelle It’s <span class="hc"
                        style="background-color: #FFFF00">a fast and secure
                        transfer</span> where money is deposited directly into
                        your recipient’s bank account typically within minutes.
                        You can also request money from others us...
                      keywordSnippet: ''
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-25T14:07:19.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Online Access
                              id: PROD-1001
                            - name: Zelle
                              id: PROD-1084
                        - topicSummary:
                            - name: Using Online Banking
                              id: PROD-1072
                            - name: Zelle
                              id: PROD-1075
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-1756
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.18394147762849983
                    - id: PROD-2554
                      name: Banking Regulations
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        Some individual cities also enact their own financial
                        regulation laws (for example, defining <span class="hc"
                        style="background: #FFFF00">what</span> constitutes
                        usurious lending).
                      keywordSnippet: >-
                        Some individual cities also enact their own financial
                        regulation laws (for example, defining <span class="hc"
                        style="background: #FFFF00">what</span> constitutes
                        usurious lending).
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T14:17:48.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Banking Regulations
                              id: PROD-1080
                        - topicSummary:
                            - name: Banking Regulations
                              id: PROD-1065
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-2930
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.16558712775547277
                    - id: PROD-2577
                      name: Short Description of Mobile Deposit
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        Mobile check deposit allows you to save time by
                        depositing your checks remotely, no matter where you are
                        or <span class="hc" style="background:
                        #FFFF00">what</span> time of day it is. Instead of
                        making a run to the bank, you can simply snap a picture
                        of the front and back of the check on your smartphone
                        and deposit it using the bank's mobile app.
                      keywordSnippet: >-
                        Mobile check deposit allows you to save time by
                        depositing your checks remotely, no matter where you are
                        or <span class="hc" style="background:
                        #FFFF00">what</span> time of day it is. Instead of
                        making a run to the bank, you can simply snap a picture
                        of the front and back of the check on your smartphone
                        and deposit it using the bank's mobile app.
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-25T14:10:07.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Checking and Savings Accounts
                              id: PROD-1066
                        - topicSummary:
                            - name: Online Access
                              id: PROD-1001
                            - name: Mobile Banking
                              id: PROD-1082
                        - topicSummary:
                            - name: Using Online Banking
                              id: PROD-1072
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-1020
                            - PROD-1756
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.13648458089091964
                    - id: PROD-2568
                      name: >-
                        Office of the Comptroller of the Currency (OCC) Banking
                        Regulations
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        OCC Bulletins



                        OCC Comptroller’s Handbook



                        Part 2 - Sales of Credit Life Insurance



                        Part 14 - Consumer Protection in Sales of Insurance



                        Part 21 - Minimum Security Devices and Procedures, SAR &
                        BSA Compliance Program



                        Part 22 - <span class="hc" style="background:
                        #FFFF00">Loans</span> in Areas having Special Flood
                        Hazards



                        Part 25 - Community Reinvestment
                      keywordSnippet: >-
                        OCC Bulletins



                        OCC Comptroller’s Handbook



                        Part 2 - Sales of Credit Life Insurance



                        Part 14 - Consumer Protection in Sales of Insurance



                        Part 21 - Minimum Security Devices and Procedures, SAR &
                        BSA Compliance Program



                        Part 22 - <span class="hc" style="background:
                        #FFFF00">Loans</span> in Areas having Special Flood
                        Hazards



                        Part 25 - Community Reinvestment
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T14:30:06.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Banking Regulations
                              id: PROD-1080
                        - topicSummary:
                            - name: Banking Regulations
                              id: PROD-1065
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-2930
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.13457933361485352
                    - id: PROD-2766
                      name: How Do I Apply for a Credit Card?
                      docType: HTML
                      source: eGain Article
                      snippet: >-
                        ...ple Customer Service Phone Number] [Sample Credit
                        Card Extension] / [Sample Text Based Phone Number],
                        Mon–Fri 7 am–5 pm PT. To apply for the <span class="hc"
                        style="background-color: #FFFF00">Secured Credit
                        Card</span>, visit your local branch.
                      keywordSnippet: ''
                      additionalSnippets: []
                      additionalSnippetCount: 0
                      contextualSummary: ''
                      modifiedDate: '2022-10-20T14:49:19.000Z'
                      headerPath: ''
                      topicBreadcrumb:
                        - topicSummary:
                            - name: Checking and Savings Accounts
                              id: PROD-1066
                            - name: Credit Cards
                              id: PROD-1068
                      tagCategories:
                        - id: PROD-1014
                          tags:
                            - PROD-1024
                            - PROD-2048
                            - PROD-2196
                      articleTypeAttributes:
                        typeName: General
                        articleTypeId: '100100000002020'
                      normalizedScore: 0.1103068233378137
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/suggestions:
    post:
      summary: Make a Suggestion
      operationId: makeSuggestion
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      description: |
        ## Overview
          The Make a Suggestion API allows users to create an Article Suggestion from within a knowledge portal.

        ## Prerequisites
          * Enable the setting "Manage a Suggestion" for the portal specified in the URL.
          * If the user is a Customer, enable the setting "Allow Customer Access" for the portal.
          * If you want to add an attachment to a Suggestion, first call the Generate Signed URL to Upload API to add an attachment using the provided returned altID in attachment request.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSuggestion'
            examples:
              Mandatory Attributes Only:
                value:
                  name: Proposed Store Phone Number
                  content: You should update your website with the new phone number.
                  language:
                    code: en-US
              Feedback Suggestion:
                value:
                  name: Proposed Store Phone Number
                  description: Changing the phone number
                  content: >-
                    I noticed that the phone number is incorrect. Attached is
                    the store's new landline and fax numbers.
                  language:
                    code: en-US
                  feedbackArticle:
                    id: PROD-2020
              All Attributes:
                value:
                  attachments:
                    attachment:
                      - altId: 0b78095b-9a1c-4303-b3d5-16914f71bf91
                  name: Proposed Store Phone Number
                  description: Changing the phone number
                  content: Attached is the store's new landline and fax numbers.
                  language:
                    code: en-US
                  customAttributes:
                    - name: proposal_category
                      value:
                        - '16'
                        - '25'
                      type: INTEGER
                    - name: automated_reply_language
                      value:
                        - es
                      type: STRING
      responses:
        '201':
          description: Created
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Modify Suggestion
      operationId: modifySuggestions
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      description: |
        ## Overview
          The Modify Suggestion API allows authenticated users to modify their own Suggestion.

        ## Prerequisites
          * Enable the setting "Manage a Suggestion" for the portal specified in the URL.
          * If the user is a Customer, enable the setting "Allow Customer Access" for the portal.
          * The "Suggestion ID" specified in the request body must exist and belong to the user.
          * The status of this Suggestion as returned by the Get Suggestion by ID API must be "pending".
          * At least one of the optional request body attributes must be provided.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifySuggestion'
            examples:
              Modify One Attribute (Name):
                value:
                  id: PROD-5722
                  name: Improving Telecommunication Services
                  modifiedDate: '2024-07-31T14:10:19Z'
              Modify All Attributes:
                value:
                  attachments:
                    attachment:
                      - altId: 0b78095b-9a1c-4303-b3d5-16914f71bf91
                    unlink:
                      - href: >-
                          /knowledge/portalmgr/v4/portals/999900000000000/suggestions/attachments/419200000001044
                        rel: attachment
                  content: This text replaces this Suggestion's existing content.
                  id: PROD-5722
                  name: Improving Telecommunication Services
                  description: Proposed changes to increase operational efficiency.
                  modifiedDate: '2021-03-28T14:29:01.516Z'
                  language:
                    code: en-US
                  customAttributes:
                    - name: phone_queue
                      value:
                        - '8'
                        - '10'
                      type: INTEGER
                    - name: automated_agent_language
                      value:
                        - fr
                      type: STRING
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: Get Suggestion by Status
      operationId: searchSuggestion
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get Suggestion by Status API allows authenticated users to retrieve their own suggestions based on Suggestion status.
          
        ## Prerequisites
          * Enable the setting "My Suggestions" for the portal specified in the URL.
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - name: filter[status]
          description: The search filter applied to the list of suggestions by a user.
          in: query
          required: true
          schema:
            type: string
            enum:
              - suggested
              - pending
              - declined
              - approved
            example: suggested
        - $ref: '#/components/parameters/sortIdName'
        - $ref: '#/components/parameters/order'
        - $ref: '#/components/parameters/pagenum'
        - $ref: '#/components/parameters/pagesizeNewFrameWork'
      responses:
        '200':
          $ref: '#/components/responses/GetSuggestionByStatus'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/suggestions/{suggestionID}:
    get:
      summary: Get Suggestion by ID
      operationId: getSuggestion
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get Suggestion by ID API allows authenticated users to retrieve their own suggestions.

        ## Prerequisites
          * Enable the setting "My Suggestions" for the portal specified in the URL.
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
          * The "Suggestion for the ID" specified in the URL must belong to the user.
         
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/suggestionId'
        - $ref: '#/components/parameters/suggestionAdditionalAttributes'
        - $ref: '#/components/parameters/customAdditionalAttributes'
      responses:
        '200':
          $ref: '#/components/responses/GetSuggestionById'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete a Suggestion
      operationId: deleteSuggestion
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      description: |
        ## Overview
          The Delete a Suggestion API allows authenticated users to delete their own Suggestion.

        ## Prerequisites
          * Enable the setting "Manage a Suggestion" for the portal specified in the URL.
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
          * The Suggestion must belong to the user.
          * The status of the Suggestion must not be "approved".
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/suggestionId'
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_resource_cannot_be_deleted'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/suggestions/{suggestionID}/relatedArticles:
    get:
      summary: Get Related Articles for Suggestion
      operationId: getRelatedArticlesForSuggestion
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get Related Articles for Suggestion API allows authenticated users to retrieve related articles for a Suggestion.

        ## Prerequisites
          * Enable the setting "My Suggestions" for the portal specified in the URL.
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
          * The Suggestion specified in the URL must belong to the user.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/articleResultAdditionalAttributes'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/suggestionId'
      responses:
        '200':
          $ref: '#/components/responses/GetRelatedArticlesForSuggestion'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/suggestions/{suggestionID}/comments:
    get:
      summary: Get Suggestion Comments
      operationId: getSuggestionComments
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get Suggestion Comments API allows authenticated users to retrieve all comments for a Suggestion.

        ## Prerequisites
          * Enable the setting "My Suggestions" for the portal specified in the URL. 
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
          * The Suggestion specified in the URL must belong to the user.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/suggestionId'
      responses:
        '200':
          $ref: '#/components/responses/GetSuggestionComments'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      summary: Add a Suggestion Comment
      operationId: addSuggestionComment
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
      description: |
        ## Overview
          The Add Suggestion Comment API allows authenticated users and agents to add a new comment to a Suggestion.

        ## Prerequisites
          * Enable the setting "My Suggestions" for the portal specified in the URL.
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
          * The Suggestion specified in the URL must belong to the user, or the user must have appropriate administrative permissions to comment on it.
          * The Suggestion must be in **Suggested** or **Pending** status, otherwise no comments can be added.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/suggestionId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateComment'
            examples:
              New Comment:
                value:
                  content: >-
                    I have uploaded the requested documents regarding the new
                    phone numbers. Please review.
      responses:
        '201':
          description: Created. The comment was successfully added.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/suggestions/{suggestionID}/attachments:
    get:
      summary: Get Suggestion Attachments
      operationId: getSuggestionAttachments
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get Suggestion Attachments API allows authenticated users to retrieve attachments for a Suggestion.

        ## Prerequisites
          * Enable the setting "My Suggestions" for the portal specified in the URL
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
          * The Suggestion specified in the URL must belong to the user.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/suggestionId'
      responses:
        '200':
          $ref: '#/components/responses/GetSuggestionAttachments'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/suggestions/attachments/{attachmentID}:
    get:
      summary: Get Suggestion Attachment by ID
      operationId: getSuggestionAttachmentById
      tags:
        - Suggestion
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get Suggestion Attachment by ID API allows authenticated users to get the details of an attachment that belongs to their own Suggestion. It also allows the download of attachment content. 

        ## Prerequisites
          * Enable the setting "My Suggestions" for the portal specified in the URL
          * If the user is a customer, enable the setting "Allow Customer Access" for the portal.
          * The Suggestion specified in the URL must belong to the user.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/attachmentId'
        - $ref: '#/components/parameters/attachmentAdditionalAttributes'
      responses:
        '200':
          $ref: '#/components/responses/GetSuggestionAttachmentById'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/user/milestones:
    get:
      tags:
        - User Milestones
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      summary: Get User Milestones
      operationId: getUserMilestones
      description: >
        ## Overview

        The User Milestones API provides information about the milestones of an
        agent within the article workflow. 

        This API helps track the progress of articles by grouping them into
        relevant milestones based on their current stage.


        For example, an article might go through Knowledge Workflow Stages like
        Draft, Initial Review, Staging, Final Review and Publish. 
               Articles in the Draft and Initial Review stages are part of the "authoring milestone", while articles in the Staging and Final Review stages are part of the "staging milestone".
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
      responses:
        '200':
          $ref: '#/components/responses/GetUserMilestonesResponse'
        '204':
          description: No Milestones configured for the user
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/permissions:
    get:
      summary: Get Article Permissions By ID
      operationId: getArticlePermissionsById
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          * The Get Article Permission by ID permits a user to retrieve permissions associated to an article.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
      responses:
        '200':
          $ref: '#/components/responses/ArticlePermissionsGetByIdResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/articles/{articleID}/personalization:
    get:
      summary: Get Article Personalization Details
      operationId: getArticlePersonalization
      tags:
        - Article
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
      description: |
        ## Overview
          The Get Article Personalization Details API allows agents to retrieve the personalization tag details of an Article.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/articleReadableId'
        - $ref: '#/components/parameters/languageQueryParameter'
        - name: workflowMilestone
          description: Workflow milestone of the Article
          in: query
          required: false
          schema:
            type: string
            enum:
              - authoring
              - publish
              - staging
            default: publish
            description: workflow milestone of the Article
            example: publish
      responses:
        '200':
          $ref: '#/components/responses/GetPersonalizationResponse'
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '406':
          $ref: '#/components/responses/UnsupportedAcceptLanguageResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
  /portals/{portalID}/search/federated/event:
    post:
      summary: Event For Viewed Federated Search Result
      operationId: createFederatedSearchResultEvent
      tags:
        - Federated Search Event
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      description: |
        ## Overview
           The Federated Search Event API creates an event for federated search results that have been viewed.
          An event for viewing an: 
          * External web page cannot be created for a portal where the value for the "Include Web Search Section in Search Results" attribute is "Yes".
          * Internal web page cannot be created for a portal where the value for the "Include Intranet Search Section in Search Results" attribute is "Yes".
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFederatedSearchEvent'
            examples:
              All attributes present:
                value:
                  q: India
                  resultType: external
                  url: https://beetle.egain.com/
                  title: Welcome to India
                  languageCode: en-US
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/tagcategoriesforinterest:
    get:
      summary: Get Tag Categories for Interest for a Portal
      operationId: getTagCategoriesForInterestForPortal
      tags:
        - Portal
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.read
      description: |
        ## Overview
          The Get Tag Categories for Interest for a Portal API retrieves the Tag Categories for Interest configured for a portal.
          * Tag Categories are ordered in order of their addition in the "Tag Categories for Interest" in the Portal configuration.
          * Tags are ordered as per their order defined in their Tag Category.
          * Tag Groups are sorted by their name, in ascending order.
      parameters:
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/portalReadableId'
        - $ref: '#/components/parameters/mandatoryLanguageQueryParameter'
      responses:
        '200':
          $ref: '#/components/responses/GetTagCategoriesForInterestForPortal'
        '204':
          description: When no Tag Categories for Interest are configured for a Portal.
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/search/connectors/event:
    post:
      summary: Event for Search Using Connectors
      operationId: createSearchResultEventForConnectors
      tags:
        - Connectors Search Events
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      description: |
        ## Overview
           The Event for Search Using Connectors API creates an event to initiate a search operation for retrieving content from external sources or integrations within the portal. 
           It allows users to set up search events based on specified criteria.
      parameters:
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createSearchResultEventForConnectors'
            examples:
              All attributes present:
                value:
                  languageCode: en-US
                  q: India
                  numberOfSearchResults: 10
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /portals/{portalID}/view/searchresults/connectors/event:
    post:
      summary: Event for Viewed Search Results Using Connectors
      operationId: createViewedSearchResultsEventForConnectors
      tags:
        - Connectors Search Events
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      description: |
        ## Overview
           The Event for Viewed Search Results Using Connectors API creates an event to log when search results from external content are viewed. 
           This helps in tracking and analyzing user interactions with search results retrieved from various external sources.
      parameters:
        - $ref: '#/components/parameters/contentType'
        - $ref: '#/components/parameters/acceptLanguage'
        - $ref: '#/components/parameters/xExtIntegrationId'
        - $ref: '#/components/parameters/xEgainActivityId'
        - $ref: '#/components/parameters/xExtInteractionId'
        - $ref: '#/components/parameters/portalReadableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createViewedSearchResultEventForConnectors'
            examples:
              All attributes present:
                value:
                  languageCode: en-US
                  q: India
                  url: https://beetle.egain.com/
                  title: Welcome to India
      responses:
        '204':
          $ref: '#/components/responses/204_common_no_content'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /attachment/preupload:
    post:
      summary: Generate Signed URL to Upload API
      operationId: createSignedURL
      tags:
        - Attachment
      security:
        - oAuthUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfUser:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
        - oAuthOnBehalfOfCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage
        - oAuthAnonymousCustomer:
            - https://api.egain.cloud/auth/knowledge.portalmgr.manage
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
      description: |
        ## Overview
           The Generate Signed URL to Upload API produces a signature that is used to upload an attachment. 
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentUpload'
            examples:
              All attributes present:
                value:
                  name: article.png
                  size: 11889
      responses:
        '200':
          $ref: '#/components/responses/AttachmentPreuploadResponse'
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '415':
          $ref: '#/components/responses/415_unsupported_media_type'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /content/export:
    post:
      x-hideReplay: true
      summary: Export Knowledge
      operationId: exportContent
      tags:
        - Export
      security:
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
      description: |
        ## Overview
           The Content Export API initiates a bulk export of the Knowledge Hub to a client-provided Amazon S3 bucket or SFTP server path.
           It returns a URL with a Job ID to enable tracking the status of this asynchronous operation.  
           Each export job can send multiple JSON files, depending on the total number of items to process. 
           More than one bulk export can take place, as needed, one per portal.

        ## Permission
          * Only a client application can invoke this API.  
          
        ## License
          * This API requires a site license (SKU: EG-CL-RTKA-PT).            
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KnowledgeExport'
            examples:
              sftpDestination:
                $ref: '#/components/examples/SftpDestinationExample'
              s3Destination:
                $ref: '#/components/examples/S3DestinationExample'
      responses:
        '202':
          description: |
            ## A request was accepted and is being processed.

            ## Expected Processing Time:
              - Small jobs (< 1,000 items): 5-15 minutes
              - Medium jobs (1,000-10,000 items): 15-60 minutes
              - Large jobs (> 10,000 items): 1-4 hours (depending on content complexity)          
          headers:
            location:
              schema:
                type: string
                example: >-
                  /knowledge/portalmgr/v4/content/export/7A84B875-6F75-4C7B-B137-0632B62DB0BD
              description: >
                **Location Header**              

                This header contains the URL to check the status of your
                validation job. The jobID (as in this example) is the unique
                identifier for tracking this operation.               ```
        '400':
          $ref: '#/components/responses/400_common_bad_request'
        '401':
          $ref: '#/components/responses/401_invalid_authorization'
        '403':
          $ref: '#/components/responses/403_scope_not_assigned'
        '404':
          $ref: '#/components/responses/404_common_not_found'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /content/export/{jobID}/status:
    get:
      summary: Get Export Job Status
      x-hideReplay: true
      description: >
        ## Overview
           The Content Export Status API provides real-time status information to monitor job progress and check completion status.

        ## Status Values

        - **Pending**: Job is pending start of processing

        - **In Progress**: Job is actively processing content        

        - **Completed**: Job finished successfully

        - **Failed**: Job encountered errors and could not complete


        ## Response Information

        - **Current Status**: Real-time job status

        - **Progress Metrics**: Items processed, total items

        - **Error Details**: Specific errors encountered during processing

        - **Timing Information**: Start time, estimated completion, actual
        completion           


        ## Permission
          * Only a client application can invoke this API.  

        ## License
          * This API requires a site license (SKU: EG-CL-RTKA-PT).         
      operationId: exportStatus
      tags:
        - Export
      security:
        - oAuthClient:
            - https://api.egain.cloud/auth/.default
      parameters:
        - $ref: '#/components/parameters/acceptLanguage'
        - name: jobID
          in: path
          description: |

            **Example Usage:**
            ```bash
            GET /content/export/7A84B875-6F75-4C7B-B137-0632B62DB0BD/status
            ```
          required: true
          schema:
            type: string
            example: 7A84B875-6F75-4C7B-B137-0632B62DB0BD
      responses:
        '200':
          description: >
            ## Job Status Retrieved Successfully


            The current status and progress information for the specified export
            job.


            **Response Details:**

            - **Status**: Current job state (Pending, In Progress, Successful,
            etc.)

            - **Progress**: Number of items processed vs. total items

            - **Timing**: Start time and estimated completion time

            - **Errors**: Any validation or processing errors
            encountered          
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportStatus'
              examples:
                Job Not Started:
                  summary: Pending export job
                  description: Shows an export job that is pending start of processing.
                  value:
                    status: Pending
                Job In Progress:
                  summary: Active export job
                  description: Shows an export job that is currently processing content.
                  value:
                    status: In Progress
                    progress:
                      processed: 1500
                      total: 4500
                      percentage: 30
                    startTime: '2025-09-15T10:00:00.000Z'
                    estimatedCompletion: '2025-09-15T11:30:00.000Z'
                Completed Job:
                  summary: Successfully completed job
                  description: Shows a job that has finished processing.
                  value:
                    status: Successful
                    progress:
                      processed: 4500
                      total: 4500
                      percentage: 100
                    startTime: '2025-09-15T10:00:00.000Z'
                    completionTime: '2025-09-15T11:25:00.000Z'
                    results:
                      successful: 4485
                      warnings: 12
                      errors: 3
                Failed Job:
                  summary: Job that encountered errors
                  description: Shows a job that failed during processing.
                  value:
                    status: Failed
                    progress:
                      processed: 1500
                      total: 4500
                      percentage: 30
                    startTime: '2025-09-10T10:00:00.000Z'
                    failureTime: '2025-09-10T10:45:00.000Z'
                    error: Connection timeout after processing 1500 items.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    EditionWithContentForExport:
      type: object
      properties:
        id:
          description: ID of the edition.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        name:
          description: Name of the edition.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        publishProfile:
          $ref: '#/components/schemas/PublishProfile'
        content:
          description: >-
            The raw content of the article. The maximum allowed Article content
            size is 5 MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        contentText:
          description: >-
            Plain text version of the content. The maximum allowed Article
            content size is 5 MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        accessTags:
          title: accessTags
          type: object
          properties:
            tagCategory:
              description: >-
                An array of tag categories. Note that the total number of tag
                categories cannot exceed 20.
              type: array
              items:
                $ref: '#/components/schemas/TagCategoryForExport'
              minItems: 0
              maxItems: 20
        link:
          $ref: '#/components/schemas/Link'
      description: This schema contains information about article edition.
      title: Edition
    ArticleType:
      title: ArticleType
      type: object
      description: The type of the Article and its attributes.
      properties:
        articleCategoryId:
          description: Specifies the article category ID.
          type: integer
          format: int64
          minimum: 0
          maximum: 7
        typeName:
          description: Indicates the article type name.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        useStructuredAuthoring:
          description: >-
            Indicates whether structured authoring is enabled for this article
            type, requiring content to be created using predefined fields
          type: boolean
        articleTypeId:
          description: The ID of the Article Type.
          type: string
          minLength: 15
          maxLength: 20
          pattern: ^[0-9]+$
          example: '932100000002020'
    Link:
      type: object
      title: Link
      description: Defines the relationship between this resource and another object.
      properties:
        rel:
          title: rel
          description: >-
            Defines the relationship between a linked resource and the current
            object.<br><br>For example: *self*, *prev*, *next* or an object name
            such as *'user'*, *'folder'* etc.
          type: string
          pattern: ^[a-zA-Z]+$
          maxLength: 50
        href:
          title: href
          description: The URL that specifies the link's destination.
          type: string
          pattern: (\/[^?#]*)
          maxLength: 1000
    ArticleAttachment:
      title: Attachment
      properties:
        id:
          description: The ID of the attachment.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-1001
        name:
          description: The name of the attachment.
          type: string
          minLength: 1
          maxLength: 4000
          pattern: ^[\w\W]+$
        size:
          type: integer
          format: int64
          description: >-
            The size of the attachment in bytes. The maximum size is limited to
            25MB.
          minimum: 1
          maximum: 26214400
        type:
          description: The type of attachment.
          type: string
          enum:
            - INTERNAL
            - EXTERNAL
        link:
          $ref: '#/components/schemas/Link'
    Edition:
      type: object
      properties:
        id:
          description: >-
            The ID of the article edition.<br>An edition ID is composed of a
            4-letter prefix, followed by a dash and 4-15 digits.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        name:
          description: The alphanumeric name of the edition.
          type: string
          minLength: 1
          maxLength: 510
          pattern: ^[\w\W]+$
        isContentEdition:
          description: >-
            <li>The presence of this element indicates that this edition is the
            one corresponding to the returned content.</li>

            <li>This can only be true for at most one <edition> element in the
            list of editions.</li>

            <li>This parameter must only be returned if article content is
            returned as well.</li>

            <li>The only allowed value is *true*. The absence of this parameter
            in the response indicates *false*.</li>
          type: boolean
        publishProfile:
          title: Publish Profile
          type: object
          properties:
            id:
              type: string
              minLength: 7
              maxLength: 20
              pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
              description: >-
                The ID of the Publish Profile.<br>An Publish Profile ID is
                composed of a 2-4 letter prefix, followed by a dash and 4-15
                digits.
            name:
              properties: {}
              description: The name of the profile.
              type: string
              minLength: 1
              maxLength: 255
              pattern: ^[a-zA-Z0-9]+$
          required:
            - id
            - name
          description: The publish view associated with this edition.
        link:
          $ref: '#/components/schemas/Link'
      description: This schema contains information about an article edition.
      title: Edition
    createdBy:
      type: object
      properties:
        id:
          description: The ID of the user that created this resource.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 8
        userName:
          type: string
          description: The resource creator's username.
          pattern: ^(?=(.*[a-zA-Z0-9_&@.\-]){2,})[a-zA-Z0-9_&@.\s\-]+$
          minLength: 2
          maxLength: 255
        firstName:
          type: string
          description: The resource creator's first name.
          pattern: ^(?!\s*$)(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}]).*$
          minLength: 1
          maxLength: 255
        middleName:
          type: string
          description: The resource creator's middle name.
          pattern: ^(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}])(\s*\S.*|)$
          minLength: 0
          maxLength: 255
        lastName:
          type: string
          description: The resource creator's last name.
          pattern: ^(?!\s*$)(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}]).*$
          minLength: 1
          maxLength: 255
    modifiedBy:
      type: object
      properties:
        id:
          description: The ID of the user that modified this resource.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 8
        userName:
          type: string
          description: The resource modifier's username.
          pattern: ^(?=(.*[a-zA-Z0-9_&@.\-]){2,})[a-zA-Z0-9_&@.\s\-]+$
          minLength: 2
          maxLength: 255
        firstName:
          type: string
          description: The resource modifier's first name.
          pattern: ^(?!\s*$)(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}]).*$
          minLength: 1
          maxLength: 255
        middleName:
          type: string
          description: The resource modifier's middle name.
          pattern: ^(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}])(\s*\S.*|)$
          minLength: 0
          maxLength: 255
        lastName:
          type: string
          description: The resource modifier's last name.
          pattern: ^(?!\s*$)(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}]).*$
          minLength: 1
          maxLength: 255
    ownedBy:
      type: object
      properties:
        id:
          description: The ID of the user that owns this resource.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 8
        userName:
          type: string
          description: The resource owner's username.
          pattern: ^(?=(.*[a-zA-Z0-9_&@.\-]){2,})[a-zA-Z0-9_&@.\s\-]+$
          minLength: 2
          maxLength: 255
        firstName:
          type: string
          description: The resource owner's first name.
          pattern: ^(?!\s*$)(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}]).*$
          minLength: 1
          maxLength: 255
        middleName:
          type: string
          description: The resource owner's middle name.
          pattern: ^(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}])(\s*\S.*|)$
          minLength: 0
          maxLength: 255
        lastName:
          type: string
          description: The resource owner's last name.
          pattern: ^(?!\s*$)(?!.*[~`!#$%\^*=\[\];"|<>\/?+\{\}]).*$
          minLength: 1
          maxLength: 255
    CustomAttribute:
      type: object
      properties:
        name:
          description: The custom attribute's name.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 4000
        value:
          description: The custom attribute's values.
          type: array
          items:
            type: string
            pattern: ^[\w\W]*$
            minLength: 0
            maxLength: 4000
        type:
          description: The custom attribute's type.
          type: string
          enum:
            - STRING
            - INTEGER
            - BOOLEAN
            - DATETIME
      additionalProperties: false
    languageCode:
      type: string
      description: Language code of the resource's language.
      enum:
        - en-US
        - fr-FR
        - en-GB
        - es-ES
        - it-IT
        - nl-NL
        - da-DA
        - sv-SE
        - pt-PT
        - fi-FI
        - no-NB
        - no-NN
        - ja-JA
        - de-DE
        - pt-BR
        - zh-CN
        - zh-TW
        - ko-KO
        - ru-RU
        - el-EL
        - tr-TR
        - pl-PL
        - cs-CS
        - sk-SK
        - hu-HU
        - sr-SR
        - ar-SA
        - hr-HR
        - ro-RO
        - th-TH
    L10NString:
      type: object
      title: L10NString
      properties:
        value:
          title: value
          description: A string that indicates the value.
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]*$
        displayValue:
          title: displayValue
          description: Localized string of the value element.
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]*$
    StructuredAuthoringFields:
      type: object
      properties:
        confidenceLevel:
          $ref: '#/components/schemas/L10NString'
        issue:
          description: Describes the problem, symptom, or question the article addresses.
          type: string
        environment:
          description: >-
            Specifies the relevant product(s), category, or business process
            tied to the issue.
          type: string
        cause:
          description: Identifies the underlying cause of the issue.
          type: string
    TopicSummary:
      title: Topic Summary
      type: object
      description: >-
        This schema contains the topic ID and name of the topics. This is used
        by TopicBreadcrumb.
      properties:
        id:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The alphanumeric ID of the topic.<br><br>A topic ID is composed of a
            2-4 letter prefix, followed by a dash and 4-15 digits.
          minLength: 7
          maxLength: 20
          example: PROD-1921
        name:
          type: string
          description: The name of the topic.
          pattern: ^[\w\W]*$
          minLength: 1
          maxLength: 255
        link:
          $ref: '#/components/schemas/Link'
    TopicBreadcrumb:
      title: Topic Breadcrumb
      type: object
      description: This schema contains one or more TopicSummary instances.
      properties:
        topicSummary:
          items:
            $ref: '#/components/schemas/TopicSummary'
          description: An instance of TopicSummary.
          type: array
    MilestoneName:
      type: object
      title: Name
      description: The identifiers of the milestone.
      properties:
        value:
          type: string
          description: The name of the milestone.
          minLength: 6
          maxLength: 10
          pattern: ^[a-zA-Z]+$
        displayValue:
          type: string
          description: The readable name of the milestone.
          minLength: 1
          maxLength: 35
          pattern: ^[\w\W]*$
    Milestone:
      type: object
      title: Milestone
      description: A resource's workflow milestone.
      properties:
        name:
          $ref: '#/components/schemas/MilestoneName'
    Stage:
      type: object
      title: stage
      description: A stage in the Article's workflow.
      properties:
        name:
          type: string
          description: The name of the stage.
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9]+$
        milestone:
          $ref: '#/components/schemas/Milestone'
    Workflow:
      title: Workflow
      description: The Article's workflow.
      type: object
      properties:
        stages:
          items:
            $ref: '#/components/schemas/Stage'
          type: array
          description: An array of stages for the workflow.
    ComplianceForArticle:
      title: Compliance
      description: This schema contains the compliance details for an Article.
      type: object
      properties:
        startDate:
          type: object
          title: DateAndTime
          required:
            - date
          properties:
            date:
              title: date
              description: The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>.
              type: string
              format: date-time
              pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          description: The start date for the Article.
        dueDate:
          type: object
          title: DateAndTime
          required:
            - date
          properties:
            date:
              title: date
              description: The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>.
              type: string
              format: date-time
              pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          description: The end date for the Article.
    Tag:
      title: Tag
      type: object
      properties:
        name:
          type: string
          example: Blue
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9 ]+$
        id:
          type: string
          example: PROD-13206
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
    Tags:
      title: Tags
      type: object
      properties:
        tag:
          description: An array of tags.
          type: array
          items:
            $ref: '#/components/schemas/Tag'
          minItems: 0
    TagGroup:
      title: TagGroup
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9 ]+$
        id:
          type: string
          example: PROD-14566
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
    TagGroups:
      title: TagGroups
      type: object
      properties:
        tagGroup:
          description: An array of tag groups.
          type: array
          items:
            $ref: '#/components/schemas/TagGroup'
          minItems: 0
    TagCategory:
      title: TagCategory
      description: A tag category is a grouping of tags and tag groups.
      type: object
      properties:
        name:
          description: The name of the tag category.
          type: string
          pattern: ^[a-zA-Z0-9 ]+$
          minLength: 1
          maxLength: 255
        id:
          description: >-
            The ID of the tag category. A tag category ID is composed of a
            4-letter prefix, followed by a dash and 4-15 digits.
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 6
          maxLength: 20
        tags:
          $ref: '#/components/schemas/Tags'
        tagGroups:
          $ref: '#/components/schemas/TagGroups'
    PublishView:
      title: PublishView
      type: object
      properties:
        name:
          type: string
          description: name of the publish view
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9 ]+$
        id:
          type: string
          example: PROD-12446
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        tagCategories:
          description: >-
            Tag categories are comprised of both tags and tag
            groups.<br><br>Note that the total number of tag and tag groups
            cannot exceed 20.
          type: array
          items:
            properties:
              tagCategory:
                type: array
                maxItems: 20
                items:
                  $ref: '#/components/schemas/TagCategory'
    Personalization:
      type: object
      title: Personalization
      description: >-
        Personalization allows the filtering of search results and controls the
        access to articles and article editions.
      properties:
        accessTags:
          title: accessTags
          type: object
          properties:
            tagCategory:
              description: >-
                An array of tag categories. Note that the total number of tag
                categories cannot exceed 20.
              type: array
              items:
                $ref: '#/components/schemas/TagCategory'
              minItems: 0
              maxItems: 20
        filters:
          title: filters
          type: object
          properties:
            tagCategory:
              description: >-
                An array of tag categories. Note that the total number of tag
                categories cannot exceed 20.
              type: array
              items:
                $ref: '#/components/schemas/TagCategory'
              minItems: 0
              maxItems: 20
        publishViews:
          title: publishViews
          type: object
          properties:
            publishView:
              description: >-
                Publish views allow authors to tailor the contents of an article
                to different audiences by controlling visibility of certain
                article content using tags.<br><br>The total number of publish
                views is limited to 20.
              type: array
              items:
                $ref: '#/components/schemas/PublishView'
              minItems: 0
              maxItems: 20
    schemas-Link:
      type: object
      title: Link
      properties:
        rel:
          title: rel
          description: >-
            Defines the relationship between a linked resource and the current
            document.<br><br>For example: self, prev, next or an object name
            such as 'user', 'folder' etc.
          allOf:
            - type: string
              pattern: ^[a-zA-Z]+$
              maxLength: 50
        href:
          title: href
          description: The URL that specifies the link's destination.
          allOf:
            - type: string
              maxLength: 1000
        _default:
          title: _default
          description: Determines if this is a default link.
          allOf:
            - type: boolean
    FolderSummary:
      title: Folder Summary
      type: object
      description: >-
        This schema contains the topic ID and name of the Folder. This is used
        by FolderBreadcrumb.
      properties:
        id:
          type: integer
          description: ID of the folder.
        name:
          type: string
          description: Name of the folder.
        link:
          $ref: '#/components/schemas/schemas-Link'
    FolderBreadcrumb:
      title: Folder Breadcrumb
      type: object
      description: This schema contains one or more FolderSummary instances.
      properties:
        folderSummary:
          items:
            $ref: '#/components/schemas/FolderSummary'
          description: An instance of FolderSummary.
          type: array
    BookmarkStatus:
      title: BookmarkStatus
      type: object
      description: Article Bookmark Status
      required:
        - isBookmarked
      properties:
        isBookmarked:
          type: boolean
          description: Indicates whether the Article is bookmarked
        bookmarkID:
          type: integer
          format: int64
          nullable: true
          description: The ID of the Bookmark, if Article is bookmarked.
        folderBreadcrumb:
          $ref: '#/components/schemas/FolderBreadcrumb'
    Article:
      title: Article
      type: object
      required:
        - id
        - name
        - createdBy
        - topicBreadcrumb
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Article.<br>An Article ID is composed of a 2-4 letter
            prefix, followed by a dash and 4-15 digits.
        additionalInfo:
          description: Additional information about the Article. Max 1 KB.
          type: string
          maxLength: 1024
          pattern: ^[\w\W]*$
        articleMacro:
          description: The name of the macro associated with this Article.
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[^\s<>`,.?;&"'!/+]*$
        articleType:
          $ref: '#/components/schemas/ArticleType'
        articleKeywords:
          description: >-
            A comma-separated list of keywords associated with this Article. 1
            KB max size limit.
          type: string
          minLength: 0
          maxLength: 1024
          pattern: ^[\w\W]*$
        articleSummary:
          description: >-
            A brief summary of the Article, provided as metadata. 1 KB max size
            limit.
          type: string
          maxLength: 1024
          pattern: ^[\w\W]*$
        attachments:
          description: |
            The attachments of the Article.
          items:
            $ref: '#/components/schemas/ArticleAttachment'
          type: array
          minItems: 0
          maxItems: 50
        availabilityDate:
          type: string
          description: The date on which the Article version is available.
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        availableEditions:
          description: The editions of this Article that are available to the user.
          items:
            $ref: '#/components/schemas/Edition'
          type: array
          maxItems: 20
        averageRating:
          format: double
          description: The average rating of the Article.
          type: number
          minimum: 0
          maximum: 100
        content:
          description: >-
            The Article content. The maximum allowed Article content size is 5
            MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        contentText:
          description: >-
            The plaintext version of the Article content, which does not have
            the HTML tags and rich formatting present in *content*. The maximum
            allowed Article content size is 5 MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        createdBy:
          $ref: '#/components/schemas/createdBy'
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        ownedBy:
          $ref: '#/components/schemas/ownedBy'
        createdDate:
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          description: A list of custom attributes.
          type: array
          minItems: 0
          maxItems: 15
        departmentID:
          description: ID of the Article's department.
          type: string
          pattern: ^999$|^[1-9][0-9]{3,8}$
          minLength: 3
          maxLength: 9
        description:
          description: >-
            A description of the Article. The maximum allowed Article
            description size is 1 KB.
          type: string
          minLength: 0
          maxLength: 1000
          pattern: ^[\w\W]*$
        expirationDate:
          description: Date of Article expiration if Article expires otherwise empty.
          type: string
          format: DateAndTime
          pattern: ^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z)?$
          minLength: 0
          maxLength: 25
        imageURL:
          description: The URL of an image to be associated with the Article.
          type: string
          minLength: 0
          maxLength: 2000
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$|^$
        includeInGenAI:
          type: boolean
          description: Indicates whether the Article is included for Generative AI.
        isSubscribed:
          description: Indicates whether the Article is subscribed for notifications.
          type: boolean
        modifiedDate:
          description: The date on which the Article was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        languageCode:
          $ref: '#/components/schemas/languageCode'
        link:
          $ref: '#/components/schemas/Link'
        name:
          description: The name of the Article.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        structuredAuthoringFields:
          $ref: '#/components/schemas/StructuredAuthoringFields'
        articleState:
          description: The Article's state.
          type: string
          minLength: 1
          maxLength: 1
        timesRated:
          description: The number of times that this Article has been rated.
          type: integer
          format: int64
          minimum: 0
        topicBreadcrumb:
          type: array
          items:
            $ref: '#/components/schemas/TopicBreadcrumb'
          minItems: 1
          maxItems: 50
          description: >-
            A list of topics from the root topic to this Article. There may be
            multiple paths.
        versionId:
          description: The ID of this version of the Article.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        workflow:
          $ref: '#/components/schemas/Workflow'
        compliance:
          $ref: '#/components/schemas/ComplianceForArticle'
        personalization:
          $ref: '#/components/schemas/Personalization'
        bookmarkStatus:
          $ref: '#/components/schemas/BookmarkStatus'
    WSErrorCommon:
      type: object
      title: Error Response
      required:
        - code
        - developerMessage
      properties:
        code:
          title: Code Identifier
          description: >
            A string that follows the pattern *{integer}-{integer}*.


            The first *{integer}* is the http status code.  This code as a whole
            is unique.

            * For example, error codes "400-101" and "404-101" are distinctly
            different.
          type: string
        developerMessage:
          title: Developer Message
          description: A summary of the error.
          type: string
          minLength: 0
          maxLength: 2048
        details:
          title: Response Details
          type: array
          items:
            type: object
            required:
              - key
            properties:
              key:
                title: Key
                type: string
                minLength: 0
                maxLength: 255
              value:
                title: Value
                type: string
                minLength: 0
                maxLength: 255
          minItems: 0
          maxItems: 30
        userMessage:
          title: User Message
          description: |
            UI friendly messages are only supported by some APIs.  
              * The client must explicitly request UI friendly messages by passing the *X-egain-error-message=yes* header.
          type: string
          minLength: 0
          maxLength: 1024
    RelatedQuestions:
      type: object
      description: Related questions for the article.
      properties:
        relatedQuestion:
          type: array
          description: An array of related questions.
          items:
            type: string
        count:
          type: integer
          format: int32
          description: The total count of related questions for the article.
    ArticleWithEditions:
      title: Article With Editions
      type: object
      required:
        - id
        - name
        - createdBy
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Article.<br>An Article ID is composed of a 2-4 letter
            prefix, followed by a dash and 4-15 digits.
        additionalInfo:
          description: Additional information about the Article. Max 1 KB.
          type: string
          maxLength: 1024
          pattern: ^[\w\W]*$
        articleMacro:
          description: The name of the macro associated with this Article.
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[^\s<>`,.?;&"'!/+]*$
        articleType:
          $ref: '#/components/schemas/ArticleType'
        articleKeywords:
          description: >-
            A comma-separated list of keywords associated with this Article. 1
            KB max size limit.
          type: string
          minLength: 0
          maxLength: 1024
          pattern: ^[\w\W]*$
        articleSummary:
          description: >-
            A brief summary of the Article, provided as metadata. 1 KB max size
            limit.
          type: string
          maxLength: 1024
          pattern: ^[\w\W]*$
        attachments:
          description: |
            The attachments of the Article.
          items:
            $ref: '#/components/schemas/ArticleAttachment'
          type: array
          minItems: 0
          maxItems: 50
        availabilityDate:
          type: string
          description: The date on which the Article version is available.
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        availableEditions:
          description: The editions of this Article that are available to the user.
          items:
            $ref: '#/components/schemas/Edition'
          type: array
          maxItems: 20
        averageRating:
          format: double
          description: The average rating of the Article.
          type: number
          minimum: 0
          maximum: 100
        content:
          description: >-
            The Article content. The maximum allowed Article content size is 5
            MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        contentText:
          description: >-
            The plaintext version of the Article content, which does not have
            the HTML tags and rich formatting present in *content*. The maximum
            allowed Article content size is 5 MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        createdBy:
          $ref: '#/components/schemas/createdBy'
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        ownedBy:
          $ref: '#/components/schemas/ownedBy'
        createdDate:
          description: >-
            The date on which the Article was created. The timezone of the date
            will be in UTC.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          description: A list of custom attributes.
          type: array
          minItems: 0
          maxItems: 15
        departmentID:
          description: ID of the Article's department.
          type: string
          pattern: ^999$|^[1-9][0-9]{3,8}$
          minLength: 3
          maxLength: 9
        description:
          description: >-
            A description of the Article. The maximum allowed Article
            description size is 1 KB.
          type: string
          minLength: 0
          maxLength: 1000
          pattern: ^[\w\W]*$
        expirationDate:
          description: Date of Article expiration if Article expires otherwise empty.
          type: string
          format: DateAndTime
          pattern: ^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z)?$
          minLength: 0
          maxLength: 25
        imageURL:
          description: The URL of an image to be associated with the Article.
          type: string
          minLength: 0
          maxLength: 2000
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$|^$
        includeInGenAI:
          type: boolean
          description: Indicates whether the Article is included for Generative AI.
        isSubscribed:
          description: Indicates whether the Article is subscribed for notifications.
          type: boolean
        modifiedDate:
          description: >-
            The date on which the Article was last modified. The timezone of the
            date will be in UTC.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        languageCode:
          $ref: '#/components/schemas/languageCode'
        link:
          $ref: '#/components/schemas/Link'
        name:
          description: The name of the Article.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        structuredAuthoringFields:
          $ref: '#/components/schemas/StructuredAuthoringFields'
        articleState:
          description: The Article's state.
          type: string
          minLength: 1
          maxLength: 1
        timesRated:
          description: The number of times that this Article has been rated.
          type: integer
          format: int64
          minimum: 0
        relatedQuestions:
          $ref: '#/components/schemas/RelatedQuestions'
        versionId:
          description: The ID of this version of the Article.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        workflow:
          $ref: '#/components/schemas/Workflow'
        personalization:
          $ref: '#/components/schemas/Personalization'
    PublishProfile:
      title: Publish Profile
      type: object
      description: This schema contains information about Profile.
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Publish Profile.<br>An Publish Profile ID is composed
            of a 2-4 letter prefix, followed by a dash and 4-15 digits.
        name:
          properties: {}
          description: The name of the profile.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9]+$
      required:
        - id
        - name
    schemas-TagGroup:
      title: TagGroup
      type: object
      properties:
        id:
          type: string
          example: PROD-14566
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: The unique identifier for the tag group.
        name:
          type: string
          description: Name of the tag group.
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        tagGroup:
          items:
            $ref: '#/components/schemas/schemas-TagGroup'
          type: array
        tag:
          items:
            $ref: '#/components/schemas/schemas-Tag'
          type: array
    schemas-Tag:
      title: Tag
      type: object
      properties:
        id:
          type: string
          example: PROD-13206
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: The unique identifier for the tag.
        name:
          type: string
          example: Blue
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: The name of the tag.
    UserView:
      title: User
      type: object
      properties:
        link:
          title: link
          description: The link to the user.
          type: array
          items:
            $ref: '#/components/schemas/Link'
          minItems: 1
          maxItems: 1
        firstName:
          title: firstName
          description: The first name of the user.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        lastName:
          title: lastName
          description: The last name of the user.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        id:
          title: id
          description: The ID of the user.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 9
    schemas-TagCategory:
      title: TagCategory
      type: object
      properties:
        name:
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          type: string
          description: name of the tag category.
        tagGroup:
          items:
            $ref: '#/components/schemas/schemas-TagGroup'
          type: array
        tag:
          items:
            $ref: '#/components/schemas/schemas-Tag'
          type: array
        created:
          type: object
          title: DateAndTime
          required:
            - date
          properties:
            user:
              $ref: '#/components/schemas/UserView'
            date:
              title: date
              description: The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>.
              type: string
              format: date-time
              pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          description: Date the Tag Category was created.
        lastModified:
          type: object
          title: DateAndTime
          required:
            - date
          properties:
            user:
              $ref: '#/components/schemas/UserView'
            date:
              title: date
              description: The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>.
              type: string
              format: date-time
              pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          description: Date of last modification.
    EditionWithContent:
      type: object
      properties:
        id:
          description: ID of the edition.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        name:
          description: Name of the edition.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        publishProfile:
          $ref: '#/components/schemas/PublishProfile'
        content:
          description: >-
            The raw content of the article. The maximum allowed Article content
            size is 5 MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        contentText:
          description: >-
            Plain text version of the content. The maximum allowed Article
            content size is 5 MB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 5000000
        accessTags:
          title: accessTags
          type: object
          properties:
            tagCategory:
              description: >-
                An array of tag categories. Note that the total number of tag
                categories cannot exceed 20.
              type: array
              items:
                $ref: '#/components/schemas/schemas-TagCategory'
              minItems: 0
              maxItems: 20
        link:
          $ref: '#/components/schemas/Link'
      description: This schema contains information about article edition.
      title: Edition
    ArticleTypeInfo:
      title: Article Type
      type: object
      properties:
        articleCategoryId:
          description: Specifies the article category ID.
          type: integer
          format: int32
          minimum: 0
          maximum: 7
        typeName:
          description: Indicates the article type name.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        useStructuredAuthoring:
          description: >-
            Indicates whether structured authoring is enabled for this article
            type, requiring content to be created using predefined fields
          type: boolean
        articleTypeId:
          description: The ID of the Article Type.
          type: string
          minLength: 15
          maxLength: 20
          pattern: ^[0-9]+$
          example: '932100000002020'
        imageURL:
          description: The URL of an image to be associated with the Article Type
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^(?:https?:\/\/|\/\/|\/|\.\.?\/|[a-zA-Z0-9])[\w\-\.\/%\?=#&:]*$
        description:
          description: Description of Article Type
          type: string
          minLength: 0
          maxLength: 2000
          pattern: ^[\w\W]*$
        isSearchable:
          description: >-
            Indicates whether articles of this type are included in portal
            search results
          type: boolean
        isBrowsable:
          description: >-
            Indicates whether articles of this type are displayed in portal
            browsing areas such as topics and lists
          type: boolean
    ArticleTypes:
      type: array
      items:
        $ref: '#/components/schemas/ArticleTypeInfo'
      maxItems: 250
    TopicBreadcrumbsList:
      title: Topic Breadcrumbs List
      type: object
      description: >-
        This schema contains an array of topic breadcrumbs, allowing clients to
        distinguish between multiple distinct hierarchical topic paths.
      properties:
        topicBreadcrumb:
          items:
            $ref: '#/components/schemas/TopicBreadcrumb'
          description: An array of TopicBreadcrumb instances representing individual paths.
          type: array
    ArticleActivityLink:
      type: object
      required:
        - versionId
        - language
      title: ArticleActivityLink
      properties:
        versionId:
          type: string
          description: An Article version's ID.
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        editionId:
          description: An Article edition's ID.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        language:
          type: object
          title: Language
          required:
            - code
          properties:
            code:
              description: The code of the language.
              type: string
              enum:
                - en-US
                - fr-FR
                - en-GB
                - es-ES
                - it-IT
                - nl-NL
                - da-DA
                - sv-SE
                - pt-PT
                - fi-FI
                - no-NB
                - no-NN
                - ja-JA
                - de-DE
                - pt-BR
                - zh-CN
                - zh-TW
                - ko-KO
                - ru-RU
                - el-EL
                - tr-TR
                - pl-PL
                - cs-CS
                - sk-SK
                - hu-HU
                - sr-SR
                - ar-SA
                - hr-HR
                - ro-RO
                - th-TH
                - de-AT
                - vi-VN
                - id-ID
                - ms-MY
                - fil-PH
                - fr-CA
                - hi-IN
                - uk-UA
                - bg-BG
                - sl-SI
                - xx-XX
          description: The knowledge base language in which the version is created.
      example:
        editionId: PROD-13015
        versionId: PROD-12416
        language:
          code: en-US
    ArticleResult:
      title: ArticleResult
      type: object
      description: >-
        Article search result, a subset of Article that does not contain content
        and contentText.
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Article.<br>An Article ID is composed of a 2-4 letter
            prefix, followed by a dash and 4-15 digits.
        articleType:
          $ref: '#/components/schemas/ArticleType'
        articleKeywords:
          description: >-
            A comma-separated list of keywords associated with this Article. 1
            KB max size limit.
          type: string
          minLength: 0
          maxLength: 1024
          pattern: ^[\w\W]*$
        articleSummary:
          description: >-
            A brief summary of the Article, provided as metadata. 1 KB max size
            limit.
          type: string
          maxLength: 1024
          pattern: ^[\w\W]*$
        averageRating:
          format: double
          description: The average rating of the Article.
          type: number
          minimum: 0
          maximum: 100
        createdBy:
          $ref: '#/components/schemas/createdBy'
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        ownedBy:
          $ref: '#/components/schemas/ownedBy'
        createdDate:
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          description: A list of custom attributes.
          type: array
          minItems: 0
          maxItems: 15
        description:
          description: >-
            A description of the Article. The maximum allowed Article
            description size is 1 KB.
          type: string
          minLength: 0
          maxLength: 1000
          pattern: ^[\w\W]*$
        hasAttachments:
          description: Indicates whether the Article has any attachments.
          type: boolean
        isSubscribed:
          description: Indicates whether the Article is subscribed for notifications.
          type: boolean
        modifiedDate:
          description: The date on which the Article was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        languageCode:
          $ref: '#/components/schemas/languageCode'
        link:
          $ref: '#/components/schemas/Link'
        imageURL:
          description: >-
            The URL of the image that is present in the Article version. It is
            used as the thumbnail image for the Article.
          type: string
          minLength: 0
          maxLength: 2000
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$|^$
        name:
          description: The name of the Article.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        timesRated:
          description: The number of times that this Article has been rated.
          type: integer
          format: int64
          minimum: 0
        topicBreadcrumb:
          type: array
          items:
            $ref: '#/components/schemas/TopicBreadcrumb'
          minItems: 1
          maxItems: 50
          description: >-
            A list of topics from the root topic to this Article. There may be
            multiple paths.
        versionId:
          description: The ID of this version of the Article.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        workflow:
          $ref: '#/components/schemas/Workflow'
        compliance:
          $ref: '#/components/schemas/ComplianceForArticle'
        personalization:
          $ref: '#/components/schemas/Personalization'
    PaginationInfo:
      type: object
      title: PaginationInfo
      required:
        - count
        - pagenum
        - pagesize
      properties:
        count:
          title: count
          description: The total number of pages.
          type: integer
          minimum: 0
          maximum: 999
        pagenum:
          title: pagenum
          description: The page number requested. Page numbers start from 1.
          type: integer
          minimum: 1
          maximum: 999
        pagesize:
          title: pagesize
          description: >-
            The number of objects requested per page. The maximum number of
            objects per page is 75.
          type: integer
          minimum: 1
          maximum: 75
        link:
          title: link
          description: Can include the *prev* and *next* link.
          type: array
          items:
            $ref: '#/components/schemas/Link'
          maxItems: 2
          minItems: 0
    ArticleResults:
      title: ArticleList
      type: object
      description: One or more instances of an Article result.
      properties:
        articles:
          description: |
            Article details
          type: array
          items:
            $ref: '#/components/schemas/ArticleResult'
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    AttachmentContent:
      title: AttachmentContent
      properties:
        attachmentId:
          description: The ID of the attachment.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        name:
          description: The name of the attachment.
          type: string
          minLength: 1
          maxLength: 4000
          pattern: ^[A-Za-z0-9 _\-\.\(\)\[\]\{\}&\+\!#@,~]+(\.[A-Za-z0-9]+)?$
        size:
          type: integer
          format: int64
          description: >-
            The size of the attachment in bytes. The maximum size is limited to
            25MB.
          minimum: 1
          maximum: 26214400
        type:
          description: The type of attachment.
          type: string
          enum:
            - INTERNAL
            - EXTERNAL
        attachmentContentType:
          description: The type of the content.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        streamingUrl:
          description: The streaming URL of the attachment.
          type: string
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$
          maxLength: 1000
        link:
          $ref: '#/components/schemas/Link'
    AttachmentContentResult:
      title: AttachmentContentResult
      type: object
      description: The returned attachment content.
      properties:
        attachmentContent:
          type: array
          items:
            $ref: '#/components/schemas/AttachmentContent'
          minItems: 1
          maxItems: 1
    ArticleRating:
      title: ArticleRating
      type: object
      description: This schema contains general information about the article rating.
      properties:
        id:
          description: The ID of the rating.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 8
        articleId:
          description: >-
            The ID of the article.<br><br>An article ID is composed of a 2-4
            letter prefix, followed by a dash and 4-15 digits.
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 7
          maxLength: 20
        ratingValue:
          description: >-
            The score value of the rating. This must be a value between 0 and
            100.
          type: integer
          format: int64
          minimum: 0
          maximum: 100
        ratingComments:
          description: Comments about the rating.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
        userId:
          description: The ID of the user that rated the article.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 8
        ratingTimestamp:
          description: The timestamp for when the article was rated.
          type: string
          format: date-time
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
    ArticleRatingsResponse:
      type: object
      title: ArticleRatingResponse
      properties:
        articleRatings:
          type: array
          items:
            $ref: '#/components/schemas/ArticleRating'
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    ComplianceArticleResult:
      title: ArticleResult
      type: object
      description: >-
        Article search result, a subset of Article that does not contain content
        and contentText.
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Article.<br>An Article ID is composed of a 2-4 letter
            prefix, followed by a dash and 4-15 digits.
        articleType:
          $ref: '#/components/schemas/ArticleType'
        articleKeywords:
          description: >-
            A comma-separated list of keywords associated with this Article. 1
            KB max size limit.
          type: string
          minLength: 0
          maxLength: 1024
          pattern: ^[\w\W]*$
        articleSummary:
          description: >-
            A brief summary of the Article, provided as metadata. 1 KB max size
            limit.
          type: string
          maxLength: 1024
          pattern: ^[\w\W]*$
        averageRating:
          format: double
          description: The average rating of the Article.
          type: number
          minimum: 0
          maximum: 100
        createdBy:
          $ref: '#/components/schemas/createdBy'
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        ownedBy:
          $ref: '#/components/schemas/ownedBy'
        createdDate:
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          description: A list of custom attributes.
          type: array
          minItems: 0
          maxItems: 15
        description:
          description: >-
            A description of the Article. The maximum allowed Article
            description size is 1 KB.
          type: string
          minLength: 0
          maxLength: 1000
          pattern: ^[\w\W]*$
        hasAttachments:
          description: Indicates whether the Article has any attachments.
          type: boolean
        isSubscribed:
          description: Indicates whether the Article is subscribed for notifications.
          type: boolean
        modifiedDate:
          description: The date on which the Article was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        updateSummary:
          type: string
          description: Summary of latest update change to article.
          maxLength: 1000
          pattern: ^[\w\W]+$
        languageCode:
          $ref: '#/components/schemas/languageCode'
        link:
          $ref: '#/components/schemas/Link'
        imageURL:
          description: >-
            The URL of the image that is present in the Article version. It is
            used as the thumbnail image for the Article.
          type: string
          minLength: 0
          maxLength: 2000
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$|^$
        name:
          description: The name of the Article.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        timesRated:
          description: The number of times that this Article has been rated.
          type: integer
          format: int64
          minimum: 0
        topicBreadcrumb:
          type: array
          items:
            $ref: '#/components/schemas/TopicBreadcrumb'
          minItems: 1
          maxItems: 50
          description: >-
            A list of topics from the root topic to this Article. There may be
            multiple paths.
        versionId:
          description: The ID of this version of the Article.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        workflow:
          $ref: '#/components/schemas/Workflow'
        compliance:
          $ref: '#/components/schemas/ComplianceForArticle'
        personalization:
          $ref: '#/components/schemas/Personalization'
    ComplianceArticleResults:
      title: ComplianceArticleResult
      type: object
      description: One or more instances of Compliance Article.
      properties:
        article:
          description: |
            Article details
          type: array
          items:
            $ref: '#/components/schemas/ComplianceArticleResult'
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    Topic:
      title: Topic
      type: object
      description: This schema contains general information about the topic.
      required:
        - id
        - name
      properties:
        id:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 7
          maxLength: 20
          description: >-
            The alphanumeric ID of the topic.<br><br>A topic ID is composed of a
            4-letter prefix, followed by a dash and 4-15 digits.
        name:
          description: The name of the topic.
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        description:
          description: A description of the topic.
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]*$
        articleCountInTopic:
          type: integer
          format: int32
          minimum: 0
          maximum: 100000
          description: Number of articles in this topic.
        articleCountInTopicTree:
          type: integer
          format: int32
          minimum: 0
          maximum: 100000
          description: Number of articles in this topic and all sub-topics.
        createdBy:
          $ref: '#/components/schemas/createdBy'
        createdDate:
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
        departmentId:
          description: ID of the topic's department.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 3
          maxLength: 10
          example: '1000001035'
        imageUrl:
          description: The URL of an image to be associated with the topic.
          type: string
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$|^$
          minLength: 0
          maxLength: 1000
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        modifiedDate:
          description: The date on which the topic was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
        childCount:
          description: Number of sub-topics below this topic.
          type: integer
          format: int32
          minimum: 0
          maximum: 2500
        subTopicIds:
          type: array
          description: >-
            Array with the list of sub-topics. <br><br>Valid IDs are composed of
            a 2-4 letter prefix, followed by a dash and 4-15 digits.
          minItems: 0
          maxItems: 2500
          items:
            type: string
            pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
            minLength: 7
            maxLength: 20
        parentTopicId:
          type: string
          minLength: 2
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$|-1$
          description: >-
            ID of the parent topic. -1 if it is the root topic. <br><br>Valid
            IDs are composed of a 2-4 letter prefix, followed by a dash and 4-15
            digits.
        customAttributes:
          description: Custom attributes for the Topic.
          type: array
          minItems: 0
          maxItems: 15
          items:
            $ref: '#/components/schemas/CustomAttribute'
        topicHomeArticleId:
          type: string
          pattern: ^([a-zA-Z0-9]{2,4}-\d{4,15})?$
          description: >-
            The ID of the article used as the home page of this topic.
            <br><br>Valid IDs are composed of a 2-4 letter prefix, followed by a
            dash and 4-15 digits.
        link:
          $ref: '#/components/schemas/Link'
    TopicTreeNode:
      title: Topic tree
      type: object
      description: This schema contains general information about the TopicTree.
      properties:
        topic:
          $ref: '#/components/schemas/Topic'
        topicTree:
          items:
            $ref: '#/components/schemas/TopicTreeNode'
    TopicTreeResult:
      title: Topic tree result
      type: object
      description: This schema contains the result of topic tree
      properties:
        topicTree:
          items:
            $ref: '#/components/schemas/TopicTreeNode'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    TopicResult:
      title: Topic result
      type: object
      description: A TopicResult defines a response from any of the Topic APIs.
      properties:
        topic:
          items:
            $ref: '#/components/schemas/Topic'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    CasebaseId:
      type: string
      pattern: ^[1-9]\d*$
      minLength: 15
      maxLength: 15
      example: '409601000000001'
      description: The numerical ID of the Casebase.
    ProfileId:
      type: string
      pattern: ^1$|^[1-9]\d{9,15}$
      minLength: 1
      maxLength: 15
      description: |
        The ID of the guided help profile.<br>
        1 will always be the **system profile**.
    Profile:
      type: object
      title: Guided Help Profile
      required:
        - id
        - name
      properties:
        id:
          $ref: '#/components/schemas/ProfileId'
        name:
          type: string
          description: Name of the profile
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
    ProfileResult:
      type: object
      title: Profile Result
      properties:
        profile:
          description: profiles
          items:
            $ref: '#/components/schemas/Profile'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    CasebaseSearchSettings:
      type: object
      title: Casebase Search Settings
      properties:
        closeSessionOnAccept:
          type: boolean
          description: >-
            indicates whether to close the Guided Help session upon acceptance
            of answer
        closeSessionOnReject:
          type: boolean
          description: >-
            indicates wheather to reject the Guided Helo session upon rejection
            of answer
    KbLanguage:
      title: KbLanguage
      type: object
      properties:
        name:
          type: string
          description: Name of the language.
          enum:
            - English (United States)
            - English (United Kingdom)
            - French (France)
            - Spanish (Spain)
            - Italian (Italy)
            - German (Germany)
            - Dutch (Netherlands)
            - Portuguese (Brazil)
            - Portuguese (Portugal)
            - Danish (Denmark)
            - Swedish (Sweden)
            - Russian (Russia)
            - French (Canada)
            - Chinese (Simplified)
            - Japanese (Japan)
            - Korean (South Korea)
        code:
          type: string
          description: IETF code of the language.
          enum:
            - en-US
            - en-GB
            - fr-FR
            - es-ES
            - it-IT
            - de-DE
            - nl-NL
            - pt-BR
            - pt-PT
            - da-DK
            - sv-SE
            - ru-RU
            - fr-CA
            - zh-CN
            - ja-JP
            - ko-KR
    KbLanguages:
      title: KbLanguages
      description: KB languages
      type: object
      minItems: 1
      maxItems: 16
      properties:
        KbLanguage:
          items:
            $ref: '#/components/schemas/KbLanguage'
          type: array
    Casebase:
      type: object
      title: Casebase Release
      properties:
        casebaseId:
          $ref: '#/components/schemas/CasebaseId'
        name:
          description: name of the Casebase Release.
          type: string
          maxLength: 255
          minLength: 1
          pattern: ^[\w\W]+$
        id:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 15
          maxLength: 15
          description: The numerical ID of the Casebase Release.
        status:
          type: string
          description: status of the Casebase
          enum:
            - author
            - live
            - qa
        profiles:
          items:
            $ref: '#/components/schemas/ProfileResult'
          description: All Guided Help Profiles associated with Casebase release
          type: array
        searchSettings:
          $ref: '#/components/schemas/CasebaseSearchSettings'
        languages:
          $ref: '#/components/schemas/KbLanguages'
        link:
          $ref: '#/components/schemas/Link'
    CasebaseResult:
      type: object
      title: Casebase Result
      properties:
        casebase:
          description: Casebase releases
          items:
            $ref: '#/components/schemas/Casebase'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    ClusterResult:
      title: ClusterResult
      type: object
      properties:
        id:
          description: id of the cluster
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 15
          example: '1000000257'
        shortName:
          description: short name of the cluster
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]*$
        name:
          description: name of the cluster
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]*$
        startup:
          description: indicates if the cluster is startup cluster of the release
          type: boolean
        depth:
          description: depth of the cluster
          type: integer
          format: int32
          minimum: 0
          maximum: 999
    ClusterResults:
      type: object
      title: Cluster Result
      properties:
        cluster:
          description: Clusters
          items:
            $ref: '#/components/schemas/ClusterResult'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    Answer:
      type: object
      title: Answer
      properties:
        id:
          type: string
          description: ID of answer
          minLength: 6
          maxLength: 20
          example: '1000000004'
          pattern: ^[0-9]+$
        value:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Value of answer
    QuestionAndAnswer:
      type: object
      title: Question and Answers
      description: Questions and answers of the Casebase
      required:
        - id
      properties:
        id:
          type: string
          description: ID of question
          minLength: 6
          maxLength: 20
          pattern: ^[0-9]+$
          example: '1000003852'
        answers:
          minItems: 1
          maxItems: 100
          type: array
          description: Answers of question
          items:
            $ref: '#/components/schemas/Answer'
    SessionContextVariable:
      type: object
      title: SessionContextVariable
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        value:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
    GHStepSearchRequest:
      title: Guided Help Step Search Request
      type: object
      properties:
        casebaseId:
          $ref: '#/components/schemas/CasebaseId'
        questions:
          items:
            $ref: '#/components/schemas/QuestionAndAnswer'
          minItems: 1
          maxItems: 500
          description: Pre-answered Questions in Guided Help search
          type: array
        profileId:
          $ref: '#/components/schemas/ProfileId'
        sessionVariable:
          description: Session variables used to give Guided Help additional context.
          items:
            $ref: '#/components/schemas/SessionContextVariable'
          type: array
        startOver:
          type: boolean
          description: >-
            Restart the current Guided Help search with the existing context
            along with session variable context.
        useLiveRelease:
          type: boolean
          description: >-
            Use current live release snapshot of the Casebase otherwise use the
            authoring release.
        ghsArticleId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 15
          maxLength: 15
          example: '100000000001035'
          description: >-
            Numeric ID of the guided help session article used for starting
            search.
      required:
        - questions
        - casebaseId
    Metadata:
      title: Metadata
      type: object
      properties:
        title:
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
          description: content of the title
        additionalInformation:
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
          description: content of the additional information
        action:
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 1024
          description: content of the action
    ActionSearch:
      type: object
      title: Action Search
      properties:
        acceptCount:
          type: integer
          format: int64
          description: number of times action was accepted
          minimum: 0
          maximum: 9999999999
        hasAdditionalInfo:
          description: indicates if action has additional information
          type: boolean
        metadata:
          description: Metadata in action search.
          items:
            $ref: '#/components/schemas/Metadata'
          type: array
        articleId:
          type: string
          minLength: 0
          maxLength: 20
          example: PROD-9312
          pattern: ^([a-zA-Z0-9]{2,4}-\d{4,15})?$
          description: >-
            The ID of the Article .<br>The ID is composed of a 2-4 letter
            prefix, followed by a dash and 4-15 digits.
        caseId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 15
          example: '100000000001035'
          description: The numerical ID of the case.
        passedThresholdValue:
          type: boolean
          description: indicates if the case has passed the threshold value
        rejectCount:
          type: integer
          format: int64
          description: The number of times action was rejected
          minimum: 0
          maximum: 9999999999
        shortName:
          type: string
          description: short name
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        score:
          type: integer
          format: int64
          description: score of the case
          minimum: 0
          maximum: 100
        name:
          type: string
          description: name of the case
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        actionId:
          type: string
          minLength: 10
          maxLength: 15
          example: '100000000009312'
          pattern: ^[1-9]\d*$
          description: The ID of the Action.
        type:
          type: string
          description: type of the action
          enum:
            - control
            - article
        articleType:
          $ref: '#/components/schemas/ArticleType'
    Image:
      title: Image
      type: object
      properties:
        link:
          $ref: '#/components/schemas/Link'
    schemas-Answer:
      title: Answer
      type: object
      properties:
        id:
          description: ID of the answer
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 10
          example: '1000001035'
        depth:
          minLength: 1
          maxLength: 999
          type: integer
          format: int64
          description: depth of the answer
        isInvisible:
          type: boolean
          description: Flag indicating if answer is visible
        text:
          type: string
          minLength: 1
          maxLength: 510
          pattern: ^[\w\W]+$
          description: Text of the answer
        image:
          $ref: '#/components/schemas/Image'
        conceptName:
          type: string
          minLength: 1
          maxLength: 510
          pattern: ^[\w\W]+$
          description: name of the answer
        conceptId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 10
          description: Id of the answer
        lowerValue:
          type: integer
          format: int64
          description: lower value of the answer
          minimum: -999999999999
        upperValue:
          type: integer
          format: int64
          description: upper value of the answer
          maximum: 999999999999
        enumLowerValue:
          type: string
          description: lower value of enum answer
        enumUpperValue:
          type: string
          description: upper value of enum answer
        lowerInclusive:
          type: boolean
          description: Value indicating if lower value is inclusive
        upperInclusive:
          type: boolean
          description: Value indicating if upper value is inclusive
        partialMin:
          type: integer
          format: int64
          description: Partial minimum
        partialMax:
          type: integer
          format: int64
          description: Partial maximim
    AnswerRange:
      title: Answer Range
      type: object
      properties:
        id:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 10
          example: '1000001035'
          description: Id of the answer range
        min:
          type: number
          description: minimum value of range
        max:
          type: number
          description: maximum value of range
        minInclusive:
          type: boolean
          description: flag indicating if minimum value is included
        maxInclusive:
          type: boolean
          description: flag indicating if maximim value is included
    schemas-CustomAttribute:
      type: object
      properties:
        name:
          description: The custom attribute's name.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 4000
        value:
          description: The custom attribute's value.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 4000
        type:
          description: The custom attribute's type.
          type: string
          enum:
            - STRING
            - INTEGER
            - BOOLEAN
            - DATETIME
    AnsweredQuestion:
      type: object
      title: Question
      properties:
        id:
          description: The numerical ID of the question
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 19
          example: '1000001035'
        title:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Title of the question
        type:
          type: string
          description: type of the question
          enum:
            - numeric
            - enumerated
            - list
            - text
        format:
          type: string
          description: format of the question
          enum:
            - radioButton
            - dropdown
            - checkbox
            - mutliSelect
            - number
            - singleLineTextField
            - multiLineTextField
        shortName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: short name
        hasAdditionalInfo:
          type: boolean
          description: indicates if question has additional information
        hasAction:
          type: boolean
          description: indicates if question has action
        validAnswer:
          description: valid answers for question
          items:
            $ref: '#/components/schemas/schemas-Answer'
          type: array
        previousAnswer:
          description: answers provided for question
          items:
            $ref: '#/components/schemas/schemas-Answer'
          type: array
        validAnswerRange:
          $ref: '#/components/schemas/AnswerRange'
        metadata:
          description: Metadata on question
          items:
            $ref: '#/components/schemas/Metadata'
          type: array
        customAttributes:
          description: Custom attributes of question
          items:
            $ref: '#/components/schemas/schemas-CustomAttribute'
          type: array
          minItems: 0
          maxItems: 15
        answerSource:
          type: string
          description: source of the provided answer
          enum:
            - rule
            - data_link_article
            - user
    Action:
      title: Action
      type: object
      properties:
        id:
          type: string
          pattern: ^[1-9]\d*$
          description: ID of the action
          minLength: 10
          maxLength: 10
        title:
          type: string
          description: Name of the action
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        type:
          type: string
          description: type of the action
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        shortName:
          type: string
          description: short name of the action
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        rejectCount:
          type: integer
          format: int64
          description: number of times action was rejected.
          minimum: 0
          maximum: 9999999999
        acceptCount:
          type: integer
          format: int64
          description: number of times action was accepted.
          minimum: 0
          maximum: 9999999999
        metadata:
          description: Metadata of action
          items:
            $ref: '#/components/schemas/Metadata'
          type: array
        articleType:
          $ref: '#/components/schemas/ArticleType'
    CaseSearch:
      type: object
      title: Case Search
      properties:
        acceptCount:
          type: integer
          format: int64
          minimum: 0
          maximum: 9999999999
          description: The number of times action was accepted
        action:
          description: actions in search
          items:
            $ref: '#/components/schemas/Action'
          type: array
        additionalInfo:
          description: This field indicates if action has additional information
          type: boolean
        metadata:
          description: Metadata in search
          items:
            $ref: '#/components/schemas/Metadata'
          type: array
        caseId:
          type: string
          description: case Id
          minLength: 10
          maxLength: 15
          pattern: ^[1-9]\d*$
        passedThresholdValue:
          type: boolean
          description: This field indicates if the case has passed the threshold value
        rejectCount:
          minimum: 0
          maximum: 9999999999
          type: integer
          format: int64
          description: The number of times action was rejected
        shortName:
          type: string
          minLength: 1
          maxLength: 255
          description: The short name
        score:
          type: number
          format: double
          minimum: 0
          maximum: 100
          description: The score of the case
        title:
          type: string
          minLength: 1
          maxLength: 255
          description: The title of the case
        type:
          type: string
          enum:
            - Control
            - Article
          description: The type of the action
    DynamicCluster:
      type: object
      title: Dynamic Cluster
      properties:
        id:
          type: string
          minLength: 10
          maxLength: 10
          pattern: ^[0-9]+$
          description: Id of the cluster
        title:
          type: string
          description: name of the cluster
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
    DetailField:
      title: Detail Field
      type: object
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          example: PROD-9312
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Detail Field.<br>The ID is composed of a 2-4 letter
            prefix, followed by a dash and 4-15 digits.
        detailLink:
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: link of the detail
        detailType:
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: type of the detail
        fieldName:
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: name of the field
    DisplayField:
      title: Display Field
      type: object
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          example: PROD-9312
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Display Field.<br>The ID is composed of a 2-4 letter
            prefix, followed by a dash and 4-15 digits.
        content:
          type: string
          minLength: 0
          maxLength: 2097152
          pattern: ^[\w\W]+$
          description: content in bytes. 2 MB max
        fieldName:
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: name of the field
    VirtualCase:
      title: Virtual Case
      type: object
      properties:
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: ID of the case
        detailField:
          description: detail fields
          items:
            $ref: '#/components/schemas/DetailField'
          type: array
        displayField:
          description: display fields
          items:
            $ref: '#/components/schemas/DisplayField'
          type: array
        dynamicClusterId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 10
          example: '1000001035'
          description: Cluster id
        title:
          type: string
          description: name of the case
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        virtualCaseId:
          type: string
          minLength: 6
          maxLength: 20
          pattern: ^[0-9]+$
          description: virtual case id
    DynamicSearch:
      type: object
      title: Dynamic Search
      properties:
        dynamicCluster:
          description: clusters in search
          items:
            $ref: '#/components/schemas/DynamicCluster'
          type: array
        parentClusterId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 10
          example: '1000001035'
          description: Parent cluster
        type:
          type: string
          description: type of search
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        virtualCase:
          description: cases in search
          items:
            $ref: '#/components/schemas/VirtualCase'
          type: array
    Question:
      type: object
      title: Question
      properties:
        id:
          description: The numerical ID of the question
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 19
          example: '1000001035'
        title:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Title of the question
        type:
          type: string
          description: type of the question
          enum:
            - numeric
            - enumerated
            - list
            - text
        format:
          type: string
          description: format of the question
          enum:
            - radioButton
            - dropdown
            - checkbox
            - mutliSelect
            - number
            - singleLineTextField
            - multiLineTextField
        shortName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: short name
        hasAdditionalInfo:
          type: boolean
          description: indicates if question has additional information
        hasAction:
          type: boolean
          description: indicates if question has action
        validAnswer:
          description: valid answers for question
          items:
            $ref: '#/components/schemas/schemas-Answer'
          type: array
        validAnswerRange:
          $ref: '#/components/schemas/AnswerRange'
        metadata:
          description: Metadata on question
          items:
            $ref: '#/components/schemas/Metadata'
          type: array
        customAttributes:
          description: Custom attributes of question
          items:
            $ref: '#/components/schemas/schemas-CustomAttribute'
          type: array
          minItems: 0
          maxItems: 15
    ClusterId:
      type: object
      title: Cluster id
      properties:
        id:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 15
          example: '1000000257'
          description: The numerical Cluster ID
    GHSearchResult:
      type: object
      title: Guided Help Search Result
      properties:
        casebase:
          $ref: '#/components/schemas/Casebase'
        actionSearch:
          description: actions in the search
          items:
            $ref: '#/components/schemas/ActionSearch'
          type: array
        answeredQuestion:
          description: questions answered in the search
          items:
            $ref: '#/components/schemas/AnsweredQuestion'
          type: array
        caseSearch:
          description: cases in the search
          items:
            $ref: '#/components/schemas/CaseSearch'
          type: array
        dynamicSearch:
          description: dynamic cases in the search
          items:
            $ref: '#/components/schemas/DynamicSearch'
          type: array
        unansweredQuestion:
          description: unanswered questions in the search
          items:
            $ref: '#/components/schemas/Question'
          type: array
        startupQuestion:
          description: startup questions in the search
          items:
            $ref: '#/components/schemas/Question'
          type: array
        targetClusters:
          description: active clusters in the search
          items:
            $ref: '#/components/schemas/ClusterId'
          type: array
    StartQuestionAndAnswer:
      type: object
      title: Question and Answers
      description: Questions and answers of the Casebase
      required:
        - id
        - answers
      properties:
        id:
          type: string
          description: ID of question
          minLength: 6
          maxLength: 20
          pattern: ^[0-9]+$
          example: '1000003852'
        answers:
          minItems: 1
          maxItems: 100
          type: array
          description: Answers of question
          items:
            $ref: '#/components/schemas/Answer'
    GHSearchRequest:
      title: Guided Help Search Request
      type: object
      properties:
        casebaseId:
          $ref: '#/components/schemas/CasebaseId'
        questions:
          items:
            $ref: '#/components/schemas/StartQuestionAndAnswer'
          minItems: 0
          maxItems: 500
          description: Pre-answered Questions in Guided Help search
          type: array
        profileId:
          type: string
          pattern: ^1$|^[1-9]\d{9,15}$
          minLength: 1
          maxLength: 15
          description: >-
            The ID of the guided help profile. 1 will always be the **system
            profile**.
        sessionVariable:
          description: Session variables used to give Guided Help additional context.
          items:
            $ref: '#/components/schemas/SessionContextVariable'
          type: array
        startOver:
          type: boolean
          description: >-
            Restart the current Guided Help search with the existing context
            along with session variable context.
        useLiveRelease:
          type: boolean
          description: >-
            Use current live release snapshot of the Casebase otherwise use the
            authoring release.
        ghsArticleId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 15
          maxLength: 15
          example: '100000000001035'
          description: >-
            Numeric ID of the guided help session article used for starting
            search.
      required:
        - casebaseId
    CaseListResult:
      type: object
      title: Case
      properties:
        id:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 15
          example: '100000000001035'
          description: The numerical ID of the case.
        shortName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: short name of the case.
        title:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: title of the case
        profileId:
          $ref: '#/components/schemas/ProfileId'
        releaseId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 15
          maxLength: 15
          example: '100000000001035'
          description: The numerical ID of the Casebase Release in which case in created
        clusterId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 15
          example: '100000000001035'
          description: ID of the cluster in which case is created
        createdDate:
          description: The date on which the Case was created.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        createdBy:
          $ref: '#/components/schemas/createdBy'
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        modifiedDate:
          description: The date on which the Case was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        link:
          $ref: '#/components/schemas/Link'
    CaseListResults:
      type: object
      title: Case List Result
      properties:
        case:
          description: Cases
          type: array
          items:
            $ref: '#/components/schemas/CaseListResult'
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    CaseQuestion:
      type: object
      title: Question
      properties:
        id:
          description: The numerical ID of the question
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 19
          example: '1000001035'
    CaseAnswer:
      title: Answer
      type: object
      properties:
        id:
          description: ID of the answer
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 10
          example: '1000001035'
        text:
          type: string
          minLength: 1
          maxLength: 510
          pattern: ^[\w\W]+$
          description: Text of the answer
    CaseQuestionDetail:
      type: object
      title: Question Detail
      required:
        - question
        - answer
      properties:
        question:
          $ref: '#/components/schemas/CaseQuestion'
        answer:
          description: Answer of the question
          items:
            $ref: '#/components/schemas/CaseAnswer'
          type: array
        scoringValue:
          type: number
          format: double
          description: Weightage of the question
    Case:
      type: object
      title: Case
      properties:
        id:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 15
          example: '100000000001035'
          description: The numerical ID of the case.
        shortName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: short name of the case.
        title:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: title of the case
        comments:
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
          description: comments on the case
        profileId:
          $ref: '#/components/schemas/ProfileId'
        releaseId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 15
          maxLength: 15
          example: '100000000001035'
          description: The numerical ID of the Casebase Release in which case in created
        clusterId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 10
          maxLength: 15
          example: '100000000001035'
          description: ID of the cluster in which case is created
        createdDate:
          description: The date on which the Case was created.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        createdBy:
          $ref: '#/components/schemas/createdBy'
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        modifiedDate:
          description: The date on which the Case was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        isVisible:
          type: boolean
          description: Flag indicating if the case is visible
        rejectCount:
          minimum: 0
          maximum: 9999999999
          type: integer
          format: int64
          description: number of times case was rejected.
        acceptCount:
          type: integer
          format: int64
          minimum: 0
          maximum: 9999999999
          description: number of times case was accepted.
        action:
          description: actions in the case
          items:
            $ref: '#/components/schemas/Action'
          type: array
        metadata:
          description: Metadata of the case
          items:
            $ref: '#/components/schemas/Metadata'
          type: array
        thresholdValue:
          minimum: 0
          maximum: 100
          type: integer
          format: int32
          description: Threshold value of the case
        thresholdType:
          type: string
          enum:
            - Default
            - Custom
          description: Threshold type indicating if thresholdValue is default or custom.
        thresholdValueFromCluster:
          type: number
          format: double
          minimum: 0
          maximum: 100
          description: Threshold value of the cluster in which case is created
        caseType:
          type: string
          enum:
            - Control
            - Content
          description: Type of the case. Control or Content type
        questionDetail:
          description: Questions in the case
          items:
            $ref: '#/components/schemas/CaseQuestionDetail'
          type: array
        link:
          $ref: '#/components/schemas/Link'
    CasebaseReleaseId:
      type: string
      pattern: ^[1-9]\d*$
      minLength: 15
      maxLength: 15
      example: '409601000000001'
      description: The numerical ID of the Casebase Release.
    QuickpickRating:
      title: Rating
      type: object
      properties:
        id:
          $ref: '#/components/schemas/CasebaseReleaseId'
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: name of the case or article
        profileId:
          $ref: '#/components/schemas/ProfileId'
      required:
        - id
        - name
        - profileId
    QuickpickResult:
      type: object
      title: Quickpick
      properties:
        id:
          description: |
            The ID of the Quickpick being accessed.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 19
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9_-]+$
          description: name of the quick pick
        comment:
          type: string
          pattern: ^[\w\W]+$
          maxLength: 255
          minLength: 1
          description: comment about quick pick
        casebaseReleaseId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 15
          maxLength: 15
          example: '409601000000001'
          description: The numerical ID of the Casebase Release.
    QuickpickResults:
      title: Quickpick result
      type: object
      properties:
        quickpick:
          description: quick picks
          items:
            $ref: '#/components/schemas/QuickpickResult'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    CreateQuickpick:
      required:
        - casebaseReleaseId
      type: object
      title: Quickpick
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: name of the quick pick
        comment:
          type: string
          pattern: ^[\w\W]+$
          maxLength: 255
          minLength: 1
          description: comment about quick pick
        casebaseReleaseId:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 15
          maxLength: 15
          example: '409601000000001'
          description: The numerical ID of Live release of the Casebase.
        linkToActivity:
          type: boolean
          description: indicates if quickpick is to be linked with activity
    Bookmark:
      title: Bookmark
      type: object
      required:
        - resourceId
      properties:
        portalId:
          description: >-
            The ID of the portal associated with the bookmark.<br><br>A portal
            ID is composed of a 2-4 letter prefix, followed by a dash and 2-4 15
            digits.
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 7
          maxLength: 20
          example: PROD-98123
        resourceId:
          description: >-
            The ID of the article or topic associated with this bookmark. A case
            ID or an article ID is composed of a 2-4 letter prefix, followed by
            a dash and 15 digits.
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minimum: 7
          maximum: 20
          example: DEV-7692
        id:
          description: The ID of the bookmark.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 4
          maxLength: 19
          example: '1000001035'
        bookmarkName:
          description: The name of the bookmark.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
        resourceType:
          description: |-
            Determines the type of resource:
            <li>1 - Article</li>
            <li>2 - Topic</li>
            <li>3 - External Content</li>          
          type: integer
          format: int32
          minimum: 1
          maximum: 3
        resourceName:
          description: >-
            The name of the resource associated with the bookmark.<br><br>This
            attribute is only available for article and topic bookmarks.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        externalContentId:
          description: >-
            The ID of the external content.<br><br>This attribute must be
            provided if <code>resourceType</code> is set to "3 - External
            Content".
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
    BookmarkResult:
      title: BookmarkResult
      type: object
      description: One or more instances of Bookmark.
      properties:
        bookmarks:
          type: array
          items:
            $ref: '#/components/schemas/Bookmark'
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    CreateBookmark:
      title: CreateBookmark
      type: object
      properties:
        resourceId:
          description: >-
            The ID of the article or topic associated with this bookmark. A case
            ID or an article ID is composed of a 2-4 letter prefix, followed by
            a dash and 15 digits.<br><br>This attribute must be provided if
            <code>resourceType</code> is set to "1 - Article" or "2 - Topic".
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minimum: 7
          maximum: 20
          example: DEV-7692
        userId:
          description: The ID of the user associated with the bookmark.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 10
          example: '1000001035'
        userType:
          description: The type of the user associated with the bookmark.
          type: string
          enum:
            - customer
            - agent
        bookmarkName:
          description: The name of the bookmark.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        resourceType:
          description: |-
            Determines the type of resource:
            <li>1 - Article</li>
            <li>2 - Topic</li>
            <li>3 - External Content</li>          
          type: integer
          format: int32
          minimum: 1
          maximum: 3
        resourceName:
          description: >-
            The name of the resource associated with the bookmark.<br><br>This
            attribute is only available for article and topic bookmarks.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        externalContentId:
          description: >-
            The ID of the external content.<br><br>This attribute must be
            provided if <code>resourceType</code> is set to "3 - External
            Content".
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
    UserProfile:
      title: User Profile
      type: object
      properties:
        id:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 7
          maxLength: 20
          description: |
            The Readable ID of the user profile.<br>
        name:
          type: string
          minimum: 1
          maximum: 250
          pattern: ^[A-Za-z0-9_\- ]*$
          description: Name given to the user profile
        isLastUsedInPortal:
          type: boolean
          description: >-
            Indicates if the profile was the last one used by the current user
            in the portal.
    UserProfiles:
      title: User Profiles
      type: object
      properties:
        profile:
          description: User profiles assigend to user.
          items:
            $ref: '#/components/schemas/UserProfile'
          type: array
    id:
      title: id
      description: ID of the object
      type: string
    name:
      title: name
      description: Name of the object
      type: string
      maxLength: 255
    RoleTemplate:
      title: template
      x-stoplight:
        id: fn6y73dcuvzj0
      type: object
      description: Role template
      properties:
        value:
          title: value
          description: Value of the role template
          type: string
        displayValue:
          title: displayValue
          description: Display value of the role template
          type: string
      required:
        - value
        - displayValue
    Role:
      type: object
      x-stoplight:
        id: 3ceinhaulvu1w
      title: Role
      required:
        - id
        - name
        - template
      properties:
        id:
          description: ID of the role
          $ref: '#/components/schemas/id'
        name:
          description: Name of the role
          $ref: '#/components/schemas/name'
        template:
          title: template
          description: Template of the role.
          $ref: '#/components/schemas/RoleTemplate'
    UserDetails:
      title: User Details
      type: object
      properties:
        id:
          description: The numerical ID of the User
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 9
        roles:
          type: array
          description: Roles of the User
          items:
            $ref: '#/components/schemas/Role'
        firstName:
          type: string
          pattern: ^[a-zA-Z0-9]|@|\s|:|.|_|-|&|[\x80-\xFF]{1,250}$
          description: First Name of the User
          example: John
        lastName:
          type: string
          pattern: ^[a-zA-Z0-9]|@|\s|:|.|_|-|&|[\x80-\xFF]{1,250}$
          description: Last Name of the User
          example: Doe
        hasEmailConfigured:
          type: boolean
          description: Indicates if user has email
    ArticleListResult:
      title: Article List
      type: object
      required:
        - id
        - name
      properties:
        name:
          description: The name of the article list.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        id:
          description: >-
            The ID of the article list.<br><br>An article list ID is either a
            4-digit number or composed of a 2-4 letter prefix, followed by a
            dash and 4-15 digits.
          type: string
          pattern: ^[0-9]{4}$|^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 4
          maxLength: 20
        description:
          description: >-
            The description of the article list. The maximum allowed article
            list description size is 1 KB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 1024
        typeId:
          description: The type of the article list.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 4
          example: '12'
        link:
          $ref: '#/components/schemas/Link'
    ArticleListsResult:
      title: Article Lists
      description: Instances of Artice List
      type: object
      properties:
        articleLists:
          type: array
          items:
            $ref: '#/components/schemas/ArticleListResult'
          minItems: 1
          maxItems: 50
    ArticleList:
      title: Article List
      type: object
      required:
        - id
        - name
      properties:
        name:
          description: The name of the article list.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        id:
          description: >-
            The ID of the article list.<br><br>An article list ID is either a
            4-digit number or composed of a 2-4 letter prefix, followed by a
            dash and 4-15 digits.
          type: string
          pattern: ^[0-9]{4}$|^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 4
          maxLength: 20
        description:
          description: >-
            The description of the article list. The maximum allowed article
            list description size is 1 KB.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 1024
        typeId:
          description: The type of the article list.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 4
          example: '12'
        articles:
          description: An array of articles that belong to the article list.
          type: array
          items:
            $ref: '#/components/schemas/ArticleResult'
          minItems: 0
          maxItems: 75
        link:
          $ref: '#/components/schemas/Link'
    ConfigurableAttribute:
      type: object
      required:
        - name
        - editable
        - mandatory
      properties:
        name:
          type: string
          description: The name of the attribute.
        mandatory:
          type: boolean
          description: Indicates if the attribute is mandatory.
        editable:
          type: boolean
          description: Indicates if the attribute is editable.
    ConfigurableAttributes:
      title: ConfigurableAttributes
      type: object
      properties:
        attribute:
          type: array
          minItems: 1
          maxItems: 50
          items:
            $ref: '#/components/schemas/ConfigurableAttribute'
    StringAttributeValue:
      title: StringAttributeValue
      type: object
      description: >-
        An attribute can have an external value such as a readable label, and an
        internal value such as a unique ID. This schema provides both the
        internal and external values for one attribute.
      properties:
        internalValue:
          type: string
          description: The internal value of the attribute.
          minimum: 1
          maximum: 255
        externalValue:
          type: string
          description: The external or public value of the attribute.
          minimum: 1
          maximum: 255
    SearchFilterAttribute:
      title: SearchFilterAttribute
      description: >-
        This includes the custom attributes that have been added to the portal
        for filtering.
      type: object
      properties:
        internalName:
          type: string
          description: The internal name of a custom attribute.
          minimum: 1
          maximum: 255
        externalName:
          type: string
          description: The external or public name of a custom attribute.
          minimum: 1
          maximum: 255
        valueType:
          enum:
            - String
            - Integer
            - Decimal
            - Date
            - Boolean
          description: The data type of the value of the attribute.
          type: string
        isEnumerated:
          type: boolean
          description: Whether the valueType is enumerated.
        isMultiselect:
          type: boolean
          description: Whether the user can select multiple values.
        value:
          $ref: '#/components/schemas/StringAttributeValue'
    components-schemas-Tag:
      type: object
      description: Tag
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Name of the Tag
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Tag .<br>A Tag ID is composed of a 2-4 letter prefix,
            followed by a dash and 4-15 digits.
    components-schemas-TagGroup:
      type: object
      description: Group of Tags
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Name of the Tag Group
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Tag Group.<br>A Tag Group ID is composed of a 2-4
            letter prefix, followed by a dash and 4-15 digits.
    components-schemas-TagCategory:
      type: object
      description: Tag Categories for Interest configured for a portal.
      properties:
        name:
          type: string
          description: Name of the Tag Category
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
        id:
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The ID of the Tag Category.<br>A Tag Category ID is composed of a
            2-4 letter prefix, followed by a dash and 4-15 digits.
        tag:
          minItems: 0
          maxItems: 200
          items:
            $ref: '#/components/schemas/components-schemas-Tag'
          type: array
        tagGroup:
          minItems: 0
          maxItems: 50
          items:
            $ref: '#/components/schemas/components-schemas-TagGroup'
    TagCategoriesForInterest:
      title: Tag Categories for Interest
      type: object
      properties:
        tagCategory:
          type: array
          minItems: 0
          maxItems: 15
          items:
            $ref: '#/components/schemas/components-schemas-TagCategory'
    PortalSettings:
      title: Portal Settings
      description: The settings for this portal.
      type: object
      additionalProperties: false
      properties:
        isAnnoucementsEnabled:
          description: Whether the announcements section is enabled on this portal.
          type: boolean
        isArticleFeedbackEnabled:
          description: Whether article feedback is allowed.
          type: boolean
        isArticleFeedbackCommentsEnabled:
          description: Whether comments should be included in the feedback.
          type: boolean
        isArticleFeedbackSummaryEnabled:
          description: Whether a summary of feedback ratings should be displayed.
          type: boolean
        isRelatedArticlesInSameTopicEnabled:
          description: >-
            Whether all articles in the same topic are automatically treated as
            related articles.
          type: boolean
        isRelatedArticlesEnabled:
          description: Whether the related articles section is shown.
          type: boolean
        isAuthenticationRequired:
          description: Whether the portal requires authentication for access.
          type: boolean
        isAgentsSSOEnabled:
          description: Whether SSO is enabled for agents
          type: boolean
        isAgentsDelegatedAuthenticationEnabled:
          description: Whether delegated authentication is enabled for agents
          type: boolean
        customerProfileAttributes:
          $ref: '#/components/schemas/ConfigurableAttributes'
        isPopularArticlesListEnabled:
          description: >-
            Whether the popular articles list is displayed. Maximum of 50
            popular articles will be dislpayed.
          type: boolean
        popularArticlesListInfluenceWeight:
          description: >-
            The weight assigned to the influence of related articles on the
            ranking of popular articles in the ranking formula.
          type: number
          format: double
          minimum: 0
          maximum: 100
        popularArticlesListInfluencePeriod:
          description: >-
            The timeframe in days that related articles affect the ranking of
            popular articles in the ranking formula.
          type: integer
          format: int32
          minimum: 1
          maximum: 100
        appendSessionJourneyToEmail:
          description: >-
            Whether the session transcript should be appended to the email
            message.
          type: boolean
        isArticleSuggestionsBeforeEscalationEnabled:
          description: Whether a user is  shown suggested articles before escalating.
          type: boolean
        isEscalationToEmailEnabled:
          description: >-
            Whether the user can ask a question via email if Guided Help doesn’t
            provide an answer, triggering a search before escalation.
          type: boolean
        numberOfSuggestedArticlesBeforeEscalation:
          description: The number of articles to show to a customer before escalation.
          type: integer
          format: int32
          minimum: 0
          maximum: 10
        isGHEnabled:
          description: Whether guided help is enabled.
          type: boolean
        isGHInSearchResultsEnabled:
          description: Whether to show guided help results in search results.
          type: boolean
        isGHStartupQuestionsBeforeUnansweredQuestionsEnabled:
          description: >-
            Whether startup questions should be presented before unanswered
            questions in Guided Help.
          type: boolean
        isGHDetailsForSearchEnabled:
          description: Whether additional information should be shown in search results.
          type: boolean
        isGHShortNameInSearchEnabled:
          description: When enabled it shows the short names in results.
          type: boolean
        isGHClusterScopeDiagnosticsEnabled:
          description: Whether to show Cluster scope diagnostics during execution.
          type: boolean
        isGHResultsShownOnSuccessfulSearch:
          type: boolean
          description: Whether to automatically display results on search success.
        isGHControlActionDiagnosticsEnabled:
          description: isGHControlActionDiagnosticsEnabled
          type: boolean
        GHFailureSuccessThreshold:
          description: A value from range that indicates the failure-success score
          type: number
          format: double
          minimum: 0
          maximum: 100
        maxGHAnsweredQuestions:
          description: A value indicating the maximum number of answered questions.
          type: integer
          format: int32
          minimum: 1
          maximum: 100
        maxGHUnansweredQuestions:
          description: A value indicating the maximum number of unanswered questions.
          type: integer
          format: int32
          minimum: 0
          maximum: 100
        maxGHSearchResults:
          description: Maximum number of guided help results to return.
          type: integer
          format: int32
          minimum: 0
          maximum: 10
        isSearchAutocompleteEnabled:
          description: Whether the autocomplete interface should be enabled.
          type: boolean
        isWebSearchEnabled:
          description: Whether web searches should be performed as part of multi-search.
          type: boolean
        maxWebSearchResults:
          description: The maximum number of results from the web search to return.
          type: integer
          format: int32
          minimum: 5
          maximum: 25
        webSearchDomain:
          description: Use this to restrict web search results to a specific domain.
          type: string
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$|^$
          minimum: 0
          maximum: 1000
        isIntranetSearchEnabled:
          description: Whether intranet results should be returned as part of multi-search.
          type: boolean
        maxIntranetSearchResults:
          description: The maximum number of results from an intranet search to return.
          type: integer
          format: int32
          minimum: 5
          maximum: 25
        intranetSearchURL:
          description: The URL for the Intranet Search.
          type: string
          minimum: 1
          maximum: 255
        isSpellcheckEnabled:
          description: >-
            Whether spell-correction should be performed on search queries. The
            corrected query is returned with the results, but is not
            automatically used.
          type: boolean
        questionMatchingEngineURL:
          description: The URL for the question matching engine.
          type: string
          minimum: 1
          maximum: 255
        isCustomAttributesFilteringEnabled:
          description: >-
            Whether search results should be filtered by custom attribute
            values.
          type: boolean
        customAttributesForSearchFilter:
          type: array
          items:
            $ref: '#/components/schemas/SearchFilterAttribute'
        searchLearningInclusionThreshold:
          description: >-
            The minimum number of accepts and rejects of an article before
            article ranking is affected.
          type: integer
          format: int32
          minimum: 1
          maximum: 99999
        searchLearningInfluence:
          description: A ranking multiplier for learned scoring.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000
        searchLearningLevel:
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
          description: >-
            Affects the influence of learning on search rankings. 0 = off, 1 =
            low, 2 = medium, 3 = high, 4 = custom.
          type: integer
          format: int32
        searchLearningMaxInfluence:
          description: The maximum influence allowed for learned scoring.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000
        searchRelatedTermWeight:
          description: The weight assigned to related terms during search.
          type: number
          format: double
          minimum: -1
          maximum: 1
        searchRelatedTermsMinResultsThreshold:
          description: >-
            If the number of search results is less than or equal to this value,
            a search with related terms will be used to fill in results.
          type: integer
          format: int32
          minimum: 1
          maximum: 99999
        isArticleSuggestionsEnabled:
          description: Whether users can make suggestions on an article.
          type: boolean
        isMySuggestionsEnabled:
          description: Whether a user can view their suggestions.
          type: boolean
        isCaptchaEnabled:
          description: Whether CAPTCHA is enabled or not in the portal.
          type: boolean
        captchaSiteKey:
          description: The configured CAPTCHA site key.
          type: string
          minimum: 1
          maximum: 40
        isArticleSharingEnabled:
          description: Whether the article sharing is enabled.
          type: boolean
        tagCategoriesForSearchFilter:
          $ref: '#/components/schemas/TagCategoriesForInterest'
    Portal:
      title: Portal
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The alphanumeric ID of the portal.<br><br>A portal ID is composed of
            a 2-4 letter prefix, followed by a dash and 4-15 digits.
          minLength: 7
          maxLength: 20
        name:
          description: The name of the portal.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        departmentId:
          description: The ID of the department.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 3
          maxLength: 10
          example: '1000001035'
        description:
          description: The description of the portal.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        defaultContentLanguageId:
          description: The default ID of the language for the portal content.
          type: string
          pattern: ^[1-9]\d*$
          minLength: 1
          maxLength: 10
          example: '1'
        defaultContentLanguageCode:
          description: The IETF code of the default language for the portal content.
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
        createdBy:
          $ref: '#/components/schemas/createdBy'
        createdDate:
          description: The date that the portal was created.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 19
          maxLength: 25
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        modifiedDate:
          description: The date on which the portal was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
        isStructuredAuthoringEnabled:
          description: Indicates if Structured Authoring is enabled for the portal.
          type: boolean
        enableDraftSearchInPortal:
          description: >-
            Indicates if Enable Portal Search for Draft and Staging Articles is
            enabled for the portal.
          type: boolean
        portalSettings:
          $ref: '#/components/schemas/PortalSettings'
        kbLanguages:
          $ref: '#/components/schemas/KbLanguages'
        link:
          $ref: '#/components/schemas/Link'
    PortalResult:
      title: Portal Result
      type: object
      properties:
        portal:
          description: portals
          items:
            $ref: '#/components/schemas/Portal'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    Department:
      title: Department of Portal
      type: object
      properties:
        id:
          type: string
          pattern: ^[1-9]\d*$
          minLength: 3
          maxLength: 10
          example: '1000001035'
          description: ID of department
        name:
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Name of Department
    ShortURL:
      title: ShortURL
      type: object
      properties:
        id:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The alphanumeric ID of the short URL.<br><br>A portal ID is composed
            of a 2-4 letter prefix, followed by a dash and 4-15 digits.
          minLength: 7
          maxLength: 20
        templateName:
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Name of template
        shortURLName:
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Name of ShortURL
        isDefault:
          type: boolean
    AccessiblePortal:
      title: Portals accessible to agent
      type: object
      properties:
        id:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minLength: 7
          maxLength: 20
          description: >-
            ID of portal. <br>A Portal ID is composed of a 2-4 letter prefix,
            followed by a dash and 4-15 digits.
        name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Name of portal
        description:
          type: string
          minLength: 0
          maxLength: 255
          pattern: ^[\w\W]+$
          description: Description of portal
        department:
          $ref: '#/components/schemas/Department'
        shortURL:
          title: ShortURLs
          items:
            $ref: '#/components/schemas/ShortURL'
          type: array
    AllAccessiblePortals:
      title: Portal accessible to agent
      type: object
      properties:
        portal:
          description: portals
          items:
            $ref: '#/components/schemas/AccessiblePortal'
          type: array
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    AdditionalSnippets:
      type: object
      required:
        - id
        - name
        - docType
        - snippet
        - normalizedScore
      properties:
        id:
          type: string
          description: >-
            The ID of the Article. <br><br> An Article ID is composed of a 2-4
            letter prefix, followed by a dash and 4-15 digits.
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-2996
        name:
          type: string
          description: The name of the Article or source content.
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          example: Fair Lending FAQs
        docType:
          type: string
          enum:
            - HTML
            - DOCX
            - PDF
            - PPTX
          description: Format of the source document (HTML, DOCX, PPTX or PDF).
          example: DOCX
        docName:
          type: string
          description: >-
            Name of the attachment, if an attachment was used as the source
            content.
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          example: Banking FAQs
        snippet:
          type: string
          description: A snippet of the article content.
          minLength: 0
          maxLength: 5000
          pattern: ^[\w\W]*$
          example: The following Banking FAQs...
        keywordSnippet:
          type: string
          description: A keyword snippet of the article content.
          minLength: 0
          maxLength: 5000
          pattern: ^[\w\W]*$
          example: The following Banking FAQs...
        relevanceScore:
          type: number
          format: float
          description: >-
            Generated confidence score (0.0-1.0) for the snippet's relevance to
            the query.
          minimum: 0
          maximum: 1
          example: 0.7
        normalizedScore:
          type: number
          format: float
          description: >-
            Score (0.0-1.0) normalized across all results, where the top result
            is 1.0 and the lowest is 0.0.
          minimum: 0
          maximum: 1
          example: 0.9
    AITopicSummary:
      title: Topic Summary
      type: object
      description: >-
        This schema contains the topic ID and name of the topics. This is used
        by TopicBreadcrumb.
      properties:
        id:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          description: >-
            The alphanumeric ID of the topic.<br><br>A topic ID is composed of a
            2-4 letter prefix, followed by a dash and 4-15 digits.
          minLength: 7
          maxLength: 20
          example: PROD-1921
        name:
          type: string
          description: The name of the topic.
          pattern: ^[\w\W]*$
          minLength: 1
          maxLength: 255
          example: Banking Regulations
    AITopicBreadcrumb:
      title: Topic Breadcrumb
      type: object
      description: This schema contains one or more TopicSummary instances.
      properties:
        topicSummary:
          items:
            $ref: '#/components/schemas/AITopicSummary'
          description: An instance of TopicSummary.
          type: array
          minItems: 1
          maxItems: 50
    schemas-Tags:
      title: Tags
      type: object
      properties:
        id:
          type: string
          description: Tag Category ID
          minLength: 6
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        tags:
          type: array
          items:
            type: string
            description: Tag ID
            minLength: 6
            maxLength: 20
            pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          minItems: 1
          maxItems: 20
    ArticleAISearchResult:
      type: object
      required:
        - id
        - name
        - docType
        - source
        - snippet
        - normalizedScore
        - topicBreadcrumb
      description: >-
        Represents a single document or snippet returned by search, along with
        its metadata and relevance score.
      properties:
        id:
          type: string
          description: >-
            The ID of the Article. <br><br> An Article ID is composed of a 2-4
            letter prefix, followed by a dash and 4-15 digits.
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-2996
        name:
          type: string
          description: The name of the Article or source content.
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          example: Fair Lending FAQs
        docType:
          type: string
          enum:
            - HTML
            - DOCX
            - PDF
            - PPTX
          description: Format of the source document (HTML, DOCX, PPTX or PDF).
          example: PDF
        docName:
          type: string
          description: >-
            Name of the attachment, if an attachment was used as the source
            content.
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          example: Lending FAQs
        source:
          type: string
          enum:
            - eGain Article
            - eGain Attachment
          description: The source type.
          example: eGain Article
        customAttributes:
          type: array
          description: Custom attributes assigned to an article
          items:
            type: object
            properties:
              name:
                type: string
                minLength: 1
                maxLength: 4000
                pattern: ^[\w\W]+$
                description: The custom attribute's name.
                example: loan_id
              value:
                type: array
                items:
                  type: string
                description: The custom attribute's values.
                example:
                  - '78391'
              type:
                type: string
                enum:
                  - STRING
                  - INTEGER
                  - BOOLEAN
                  - DATETIME
                description: The custom attribute's type.
                example: STRING
          minItems: 0
          maxItems: 15
        snippet:
          type: string
          description: A semantic snippet of the article content.
          minLength: 0
          maxLength: 5000
          pattern: ^[\w\W]*$
          example: What is fair lending...
        keywordSnippet:
          type: string
          description: A keyword search snippet of article content.
          minLength: 0
          maxLength: 5000
          pattern: ^[\w\W]*$
          example: What is fair lending...
        additionalSnippets:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalSnippets'
          minItems: 0
          maxItems: 5
          description: An array of snippets belonging to the same article.
        additionalSnippetCount:
          type: integer
          minimum: 0
          maximum: 5
          description: Number of additional snippets.
          example: 1
        contextualSummary:
          type: string
          description: >-
            Contextual Summary generated as part of metadata for the chunk
            content.
          minLength: 0
          maxLength: 1000
          pattern: ^[\w\W]*$
          example: The summary of the lending FAQ...
        modifiedDate:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
          description: The date on which the Article was last modified.
          example: '2025-01-28T19:53:58Z'
        headerPath:
          type: string
          minLength: 0
          maxLength: 100
          description: The header path of the snippet retrieved.
          pattern: ^[\w\W]*$
          example: FAQs
        topicBreadcrumb:
          type: array
          items:
            $ref: '#/components/schemas/AITopicBreadcrumb'
          minItems: 1
          maxItems: 50
          description: >-
            A list of topics from the root topic to this Article. There may be
            multiple paths.
        tagCategories:
          type: array
          items:
            $ref: '#/components/schemas/schemas-Tags'
          description: >-
            An array of tag categories. Note that the total number of tag
            categories cannot exceed 20.
          minItems: 0
          maxItems: 20
        articleTypeAttributes:
          type: object
          description: The type of the Article and its attributes.
          properties:
            typeName:
              type: string
              example: General
              description: Indicates the article category name.
              minLength: 1
              maxLength: 255
            articleTypeId:
              description: The ID of the Article Type.
              minLength: 15
              maxLength: 15
              pattern: ^[0-9]+$
              example: 243500000023393
        relevanceScore:
          type: number
          format: float
          description: >
            Query-specific relevance score (0.0-1.0) that reflects how well the
            result matches the user query. This score is only available when a
            re-ranker is enabled and represents a direct relevance comparison
            between the query and the returned snippet.
          minimum: 0
          maximum: 1
          example: 0.8
        normalizedScore:
          type: number
          format: float
          description: >
            Relative ranking score (0.0-1.0) normalized across all returned
            results, based on a combination of BM25 and semantic similarity
            scores. This score indicates how a result ranks compared to others
            in the same response, not its absolute relevance to the query. As a
            result, a high score does not necessarily imply strong query
            relevance.
          minimum: 0
          maximum: 1
          example: 0.9
    AISPaginationInfo:
      type: object
      title: PaginationInfo
      required:
        - count
        - pagenum
        - pagesize
      properties:
        count:
          title: count
          description: The total number of pages.
          type: integer
          minimum: 0
          maximum: 1
          default: 1
        pagenum:
          title: pagenum
          description: The page number requested. Page numbers start from 1.
          type: integer
          minimum: 1
          maximum: 1
          default: 1
        pagesize:
          title: pagesize
          description: >-
            The number of objects requested per page. The maximum number of
            objects per page is 75.
          type: integer
          minimum: 1
          maximum: 30
          default: 20
        link:
          title: link
          description: Can include the *prev* and *next* link.
          type: array
          items:
            $ref: '#/components/schemas/Link'
          maxItems: 2
          minItems: 0
    AISearchResponse:
      type: object
      required:
        - searchResults
      properties:
        searchResults:
          type: object
          description: Top search results with relevance scores
          properties:
            article:
              type: array
              items:
                $ref: '#/components/schemas/ArticleAISearchResult'
              minItems: 1
              maxItems: 50
        paginationInfo:
          $ref: '#/components/schemas/AISPaginationInfo'
    Suggestion:
      description: This schema contains information about a Suggestion.
      title: suggestion
      type: object
      required:
        - id
        - name
      properties:
        id:
          description: >-
            The ID of the Suggestion. A Suggestion ID is composed of a 2-4
            letter prefix, followed by a dash and 4-15 digits.
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-0623
          minLength: 7
          maxLength: 20
        link:
          $ref: '#/components/schemas/Link'
        name:
          description: The name of the Suggestion.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 255
        description:
          description: The description of the Suggestion.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
        content:
          description: The content of the Suggestion.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 4000
        hasRelatedArticles:
          type: boolean
          description: If true, the Suggestion has one or more Related Articles.
        status:
          type: object
          title: L10NString
          properties:
            value:
              title: value
              description: A string that indicates the value.
              type: string
            displayValue:
              title: displayValue
              description: Localized string of the value element.
              type: string
          description: |-
            The status of the Suggestion.
            <li>1 : suggested.</li>
            <li>2 : pending</li>
            <li>3 : declined</li>
            <li>4 : approved</li>
          pattern: ^[1-4]$
          minLength: 1
          maxLength: 1
        modifiedBy:
          $ref: '#/components/schemas/modifiedBy'
        modifiedDate:
          description: The last modified date and last modifying user of the Suggestion.
          type: string
          format: date-time
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        hasAttachments:
          description: Indicates whether the Suggestion has any Attachments.
          type: boolean
        hasComments:
          description: Indicates whether the Suggestion has any comments.
          type: boolean
        language:
          type: object
          title: Language
          required:
            - code
          properties:
            code:
              title: code
              description: >-
                The language that describes the details of the resource.
                Resources available in different languages may differ from each
                other.
              type: string
              enum:
                - en-US
                - en-GB
                - fr-FR
                - es-ES
                - it-IT
                - de-DE
                - nl-NL
                - pt-BR
                - pt-PT
                - da-DK
                - sv-SE
                - ru-RU
                - zh-CN
                - ja-JP
                - ko-KR
                - de-AT
                - th-TH
                - vi-VN
                - id-ID
                - ms-MY
                - fil-PH
                - fr-CA
                - hi-IN
                - uk-UA
                - bg-BG
                - sk-SK
                - sl-SI
            label:
              title: label
              description: The name of the language.
              type: string
              enum:
                - English
                - French
                - Spanish
                - Italian
                - German
                - Dutch
                - Portuguese
                - Danish
                - Swedish
                - Russian
                - Chinese
                - Japanese
                - Korean
                - Thai
                - Vietnamese
                - Indonesian
                - Malay
                - Filipino
                - Hindi
                - Ukrainian
                - Bulgarian
                - Slovak
                - Slovene
                - Serbian
          description: The knowledge base language in which the Suggestion was created.
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          type: array
          minItems: 0
          maxItems: 15
          description: Custom Attributes of the Suggestion.
    Suggestions:
      title: suggestions
      type: object
      description: One or more instances of Suggestion.
      properties:
        Suggestion:
          type: array
          items:
            $ref: '#/components/schemas/Suggestion'
        paginationInfo:
          $ref: '#/components/schemas/PaginationInfo'
    AttachmentForCreateSuggestion:
      description: This schema contains the definition of an Attachment.
      title: attachment
      type: object
      properties:
        altId:
          description: >
            The alternate Id of the Attachment that was obtained after calling
            **[Generate signed URL to upload an
            attachment](../../../../../v3/core/filemgr/api-bundled/storageservice/generatepreuploadurl)**.
          type: string
          pattern: >-
            ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          minLength: 36
          maxLength: 36
    ModifySuggestion:
      description: This schema contains information about modifying a Suggestion.
      title: suggestion
      type: object
      required:
        - id
        - modifiedDate
      properties:
        id:
          description: >-
            The ID of the Suggestion. A Suggestion ID is composed of a 2-4
            letter prefix, followed by a dash and 4-15 digits.
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-3259
          minLength: 7
          maxLength: 20
        name:
          description: The name of the Suggestion.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 255
        description:
          description: The description of the Suggestion.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
        content:
          description: The content of the Suggestion.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 4000
        modifiedDate:
          description: The date on which the Suggestion was last modified.
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
        attachments:
          title: attachments
          type: object
          properties:
            attachment:
              description: >-
                The list of Attachments.<br><br>Required if <code>content</code>
                and <code>Attachments.unlink</code> are both _not_ provided.
              type: array
              items:
                $ref: '#/components/schemas/AttachmentForCreateSuggestion'
              maxItems: 250
            unlink:
              description: >-
                If provided with references to Attachments, <code>unlink</code>
                removes the Attachment from the Suggestion.<br><br>If the
                Attachment has no associated objects, it will be
                deleted.<br><br>Required if <code>content</code> and
                <code>Attachments.Attachment</code> are both _not_ provided.
              type: array
              items:
                $ref: '#/components/schemas/Link'
              maxItems: 250
          description: Details of Attachments for the Suggestion.
        customAttributes:
          items:
            $ref: '#/components/schemas/CustomAttribute'
          type: array
          minItems: 0
          maxItems: 15
          description: Custom Attributes of the Suggestion.
    CreateSuggestion:
      description: This schema contains information about a Suggestion.
      title: CreateSuggestion
      type: object
      required:
        - name
        - content
        - language
      properties:
        name:
          description: The name of the Suggestion.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 255
        description:
          description: The description of the Suggestion.
          type: string
          pattern: ^[\w\W]*$
          minLength: 0
          maxLength: 255
        content:
          description: The content of the Suggestion.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 4000
        feedbackArticle:
          title: RelatedArticleForCreateUpdateDeleteSuggestion
          type: object
          properties:
            id:
              description: >-
                The ID of a Related Article.<br><br>An Article ID is composed of
                a 2-4 letter prefix, followed by a dash and 4-15 digits.
              type: string
              pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
              example: PROD-9821
              minLength: 7
              maxLength: 20
          description: The Article that the Suggestion was created for.
        attachments:
          title: attachments
          type: object
          properties:
            attachment:
              type: array
              items:
                $ref: '#/components/schemas/AttachmentForCreateSuggestion'
              maxItems: 20
              description: The list of Attachments.
          description: Details of Attachments for the Suggestion.
        language:
          type: object
          title: Language
          required:
            - code
          properties:
            code:
              description: The code of the language.
              type: string
              enum:
                - en-US
                - fr-FR
                - en-GB
                - es-ES
                - it-IT
                - nl-NL
                - da-DA
                - sv-SE
                - pt-PT
                - fi-FI
                - no-NB
                - no-NN
                - ja-JA
                - de-DE
                - pt-BR
                - zh-CN
                - zh-TW
                - ko-KO
                - ru-RU
                - el-EL
                - tr-TR
                - pl-PL
                - cs-CS
                - sk-SK
                - hu-HU
                - sr-SR
                - ar-SA
                - hr-HR
                - ro-RO
                - th-TH
                - de-AT
                - vi-VN
                - id-ID
                - ms-MY
                - fil-PH
                - fr-CA
                - hi-IN
                - uk-UA
                - bg-BG
                - sl-SI
                - xx-XX
          description: The knowledge base language in which the Suggestion is created.
        customAttributes:
          description: The Custom Attributes of the Suggestion.
          minItems: 0
          maxItems: 15
          type: array
          items:
            $ref: '#/components/schemas/CustomAttribute'
    FeedbackArticleForSuggestion:
      description: This schema contains information about a Suggestion.
      title: suggestion
      type: object
      properties:
        id:
          description: >-
            The ID of the Suggestion. A Suggestion ID is composed of a 2-4
            letter prefix, followed by a dash and 4-15 digits.
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-3259
          minLength: 7
          maxLength: 20
        name:
          description: The name of the Suggestion.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 255
        relatedArticles:
          description: Related Articles for the Suggestion.
          type: array
          items:
            $ref: '#/components/schemas/ArticleResult'
    Comment:
      description: This schema contains the definition of a comment object.
      title: Comment
      type: object
      properties:
        id:
          properties: {}
          description: The ID of the comment.
          type: string
          minLength: 1
          maxLength: 9
          pattern: ^[1-9]\d*$
        content:
          properties: {}
          description: The content of the comment.
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 2000
        createdBy:
          $ref: '#/components/schemas/createdBy'
        createdDate:
          type: string
          format: DateAndTime
          pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          minLength: 20
          maxLength: 25
    Comments:
      description: This schema contains the definition of an array of comments.
      title: Comments
      type: object
      properties:
        count:
          properties: {}
          description: The number of comments.
          type: integer
          format: int32
          minimum: 0
          maximum: 75
        comments:
          type: array
          items:
            $ref: '#/components/schemas/Comment'
          minItems: 1
          maxItems: 75
          description: The list of comments.
    CreateComment:
      description: This schema contains the definition for comment creation.
      title: Comment
      type: object
      properties:
        content:
          description: Content of the Comment
          type: string
          pattern: ^[\s\S]*\S[\s\S]*$
          minLength: 1
          maxLength: 2000
    AttachmentSummary:
      description: Summary attributes for an Attachment.
      title: attachment
      type: object
      properties:
        id:
          properties: {}
          description: The ID of the Attachment.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-1001
        link:
          $ref: '#/components/schemas/Link'
        fileName:
          properties: {}
          description: >-
            The name of the Attachment file.<li>This must not exceed 255
            characters.</li>
          type: string
          maxLength: 255
          minLength: 1
        size:
          properties: {}
          description: The size of the Attachment.<li>Limited to 25MB.</li>
          type: integer
          format: int32
          minimum: 1
          maximum: 26214400
    Attachments:
      description: This schema contains the definition of Attachments.
      title: attachments
      type: object
      properties:
        count:
          properties: {}
          description: The number of Attachments in the list.
          type: integer
          format: int32
          minimum: 1
          maximum: 25
        link:
          $ref: '#/components/schemas/Link'
        Attachments:
          description: The list of Attachments.
          type: array
          items:
            $ref: '#/components/schemas/AttachmentSummary'
          minItems: 1
          maxItems: 25
    SuggestionAttachment:
      description: This schema contains the definition of an Attachment.
      title: attachment
      type: object
      properties:
        id:
          properties: {}
          description: The ID of the Attachment.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-1001
        link:
          $ref: '#/components/schemas/Link'
        fileName:
          properties: {}
          description: >-
            The name of the Attachment file.<li>This must not exceed 255
            characters.</li>
          type: string
          maxLength: 255
          minLength: 1
        size:
          properties: {}
          description: The size of the Attachment.<li>Limited to 25MB.</li>
          type: integer
          format: int32
          minimum: 1
          maximum: 26214400
        contentUrl:
          properties: {}
          description: >
            The content URL of the Attachment. Download immediately, as this
            unique URL exists temporarily and can only be retrieved once before
            deletion. 
          type: string
          maxLength: 1024
          minLength: 1
    Milestones:
      type: object
      title: Milestones
      properties:
        milestone:
          description: milestones
          items:
            $ref: '#/components/schemas/Milestone'
          type: array
    ArticlePermissions:
      type: object
      description: User permissions on the parent folder.
      properties:
        view:
          type: boolean
          description: User has 'View Folder' permission on the parent folder.
        edit:
          type: boolean
          description: User has 'Edit Article' permission on the parent folder.
    ArticlePermissionsResult:
      title: ArticlePermissions
      type: object
      description: User permissions on the parent folder.
      properties:
        articleID:
          type: string
          description: ID of Article
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: EGSP-2433
        permissions:
          $ref: '#/components/schemas/ArticlePermissions'
    KbLanguageCode:
      description: |
        A short language code. A list of codes can be found below:

        |Code|Description
        |----|----------- 
        |en-US|English (United States)
        |en-GB|English (United Kingdom)
        |fr-FR|French (France)
        |es-ES|Spanish (Spain)
        |it-IT|Italian (Italy)
        |de-DE|German (Germany)
        |nl-NL|Dutch (Netherlands)
        |pt-BR|Portuguese (Brazil)
        |pt-PT|Portuguese (Portugal)
        |da-DK|Danish (Denmark)
        |sv-SE|Swedish (Sweden)
        |ru-RU|Russian (Russia)
        |fr-CA|French (Canada)
        |zh-CN|Chinese (Simplified, China)
        |ja-JP|Japanese (Japan)
        |ko-KR|Korean (South Korea)
        |nn-NO|Norwegian Nynorsk (Norway)
      type: string
      enum:
        - en-US
        - en-GB
        - fr-FR
        - es-ES
        - it-IT
        - de-DE
        - nl-NL
        - pt-BR
        - pt-PT
        - da-DK
        - sv-SE
        - ru-RU
        - fr-CA
        - zh-CN
        - ja-JP
        - ko-KR
        - nn-NO
    CreateFederatedSearchEvent:
      title: CreateFederatedSearchEvent
      type: object
      required:
        - q
        - resultType
        - url
        - title
        - languageCode
      properties:
        q:
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 1024
          example: India
          description: The search string that was entered by the user
        resultType:
          type: string
          enum:
            - external
            - internal
          description: Only "external" or "internal" allowed
          example: external
        url:
          type: string
          pattern: ^(https?|ftp):\/\/([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}(:\d+)?(\/[^\s]*)?$
          minLength: 10
          maxLength: 2000
          example: https://egain.com/
        title:
          type: string
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
          example: Welcome to eGain
        languageCode:
          $ref: '#/components/schemas/KbLanguageCode'
    createSearchResultEventForConnectors:
      type: object
      title: createViewedSearchResultEventForConnectors
      required:
        - languageCode
        - q
        - numberOfSearchResults
      properties:
        languageCode:
          $ref: '#/components/schemas/KbLanguageCode'
        q:
          type: string
          example: India
          description: The string to use for the search.
          minLength: 1
          maxLength: 1024
        numberOfSearchResults:
          type: integer
          format: int32
          minimum: 1
          maximum: 25
          example: 10
    createViewedSearchResultEventForConnectors:
      type: object
      title: createSearchResultEventForConnectors
      required:
        - q
        - url
        - title
        - languageCode
      properties:
        languageCode:
          $ref: '#/components/schemas/KbLanguageCode'
        q:
          description: The string to use for the search.
          type: string
          example: India
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 1024
        url:
          type: string
          description: The URL of the search result.
          pattern: ^(https?|ftp):\/\/([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}(:\d+)?(\/[^\s]*)?$
          minLength: 10
          maxLength: 2000
          example: https://egain.com/
        title:
          type: string
          description: The title of the search result.
          pattern: ^[\w\W]+$
          minLength: 1
          maxLength: 255
          example: Welcome to India
    AttachmentUpload:
      required:
        - name
        - size
      title: AttachmentUpload
      type: object
      properties:
        name:
          description: The name of the attachment.
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[\w\W]+$
        size:
          type: integer
          format: int64
          description: >-
            The size of the attachment in bytes. The maximum size is limited to
            25MB.
          minimum: 1
          maximum: 26214400
    Attachment:
      title: Attachment
      type: object
      properties:
        altId:
          description: The ID of the attachment.
          type: string
          minLength: 36
          maxLength: 36
          pattern: >-
            ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          example: f665fb41-6485-43c3-a2c8-c72857c29f74
        name:
          description: The name of the attachment.
          type: string
          minLength: 1
          maxLength: 200
          pattern: ^[\w\W]+$
          example: article.png
        contentUrl:
          description: The content URL to upload an attachment.
          type: string
          pattern: ^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$
          maxLength: 1000
          example: >-
            https://EG5842ain.ezdev.net/knowledge/portalmgr/v4/attachmnet/upload?signature=3552656867434671616F6C51786335674B764E7848586E786B383255555A41574F6B656F542B396258677A334341322F2B32336F434D6D6E47637955714C6A6E4D527476666C534E4C6232520D0A4F6F70637259773043515A6778596949586F3247666B6E624350386336563446624C5446746C546B2F324A734E425939634758507465722B6C584435685747734C4A2B6C626342732F426E640D0A4D7965456452564A6670525069536D2B43423232384A67724F636C4161654F39336F42784942354C6776462F50724D67674A3248527253504C53457551596A7A6D4B347A4F7A63416C7047450D0A39556133495776504A4875336D77757330773D3D
    SftpConfig:
      type: object
      properties:
        username:
          type: string
          maxLength: 128
          example: rtka-user
        password:
          type: string
          maxLength: 128
          example: xyz1234
        host:
          type: string
          description: The hostname of the SFTP server
          pattern: ^(?!:\/\/)([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63}$
          maxLength: 128
          example: sftp.yourcompany.com
        port:
          type: integer
          description: The server port number
          format: int32
          default: 22
      required:
        - username
        - host
    S3Config:
      type: object
      properties:
        region:
          description: Region of the data destination
          type: string
          maxLength: 20
          example: us-west-2
        accessKey:
          type: string
          maxLength: 128
          example: s3-access-key
        secretKey:
          type: string
          maxLength: 128
          example: s3-access-secret
      required:
        - region
        - accessKey
        - secretKey
    KnowledgeExport:
      title: KnowledgeExport
      type: object
      required:
        - portalID
        - language
        - resourceTypes
        - dataDestination
      properties:
        articleCategories:
          description: >-
            Category of articles to return. If all is selected, it includes both
            browsable and searchable articles.
          type: string
          enum:
            - searchable
            - all
          default: searchable
        portalID:
          description: >-
            The ID of the portal being accessed.<br><br>A portal ID is composed
            of a 2-4 letter prefix, followed by a dash and 4-15 digits.
          type: string
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          example: PROD-1000
        language:
          description: The Knowledge Base language in which the content is created.
          type: object
          title: language
          required:
            - code
          properties:
            code:
              description: The code of the language.
              type: string
              enum:
                - en-US
                - fr-FR
                - en-GB
                - es-ES
                - it-IT
                - nl-NL
                - da-DA
                - sv-SE
                - pt-PT
                - fi-FI
                - no-NB
                - no-NN
                - ja-JA
                - de-DE
                - pt-BR
                - zh-CN
                - zh-TW
                - ko-KO
                - ru-RU
                - el-EL
                - tr-TR
                - pl-PL
                - cs-CS
                - sk-SK
                - hu-HU
                - sr-SR
                - ar-SA
                - hr-HR
                - ro-RO
                - th-TH
                - de-AT
                - vi-VN
                - id-ID
                - ms-MY
                - fil-PH
                - fr-CA
                - hi-IN
                - uk-UA
                - bg-BG
                - sl-SI
                - xx-XX
              example: en-US
        exportUnpublishedOnly:
          description: >-
            Determines which article version to export. If true, the latest
            unpublished version will be exported for each article where
            available, and articles that do not have an unpublished version will
            be omitted from the export. If this property is false or omitted,
            the latest published version will be exported for each article where
            available. Each request exports either all published or all
            unpublished article versions in a portal; never both.
          type: boolean
          default: false
        resourceTypes:
          type: array
          items:
            type: string
            enum:
              - articles
              - topics
              - portals
              - all
            example: articles
          description: >
            Types of Knowledge Hub resources to export. Use 'all' to specify all
            resource types at once. 


            Below are the attributes that are returned for each resource type
            specified.


            ##### Portal Resource Type Attributes

            Portal Attribute Name | Description 

            ------------------------------- | -----------

            | id | The ID of the Portal in Readable format.

            | alternateId | The system-generated ID of the Portal in long
            format.

            | name  | The name of the Portal.

            | description | The Portal's description.

            | departmentId | ID of the department this Portal belongs to. 

            | defaultContentLanguageId | The default ID of the language for the
            portal content.


            ##### Topic Resource Type Attributes

            | Topic Attribute Name | Description 

            | ------------------------------ | -----------

            | id | The ID of the Topic in Readable form.

            | alternateId | The system-generated ID of the Topic in long form.

            | name  | The name of the Topic.

            | departmentId | ID of the department this Topic belongs to.

            | modifiedDate | The date when the Topic was last modified on.

            | topicHomeArticleId | The ID of the Article used as the home page
            of this Topic.

            | childCount | Total number of children sub-topis below the current
            Topic.

            | subTopicIds | Array with the list of sub-topics (all levels of the
            topic hierarchy).

            | parentTopicId | ID of the parent Topic. -1 if it is the root
            Topic.

            | imageURL | URL of the inline Topic image.

            | customAttributes | One or more comma-separated names for Topic
            custom attributes defined by the user to be returned.


            ##### Article Resource Type Attributes

            Export article's attributes returned are aligned with the response
            of the [Get Article By ID with
            Editions](../article/getarticlebyidwitheditions) API.
        dataDestination:
          type: object
          properties:
            destinationType:
              type: string
              description: Type of data destination
              enum:
                - AWS S3 bucket
                - SFTP server
              example: AWS S3 bucket
            path:
              type: string
              description: >
                Path of the data destination. For S3 bucket, it can be root or a
                folder. For SFTP, it can be target directory on the server.


                **Examples:**


                * **For S3:** `"s3://amzn-s3-demo-bucket/mydeptfolder"`

                * **For SFTP:** `"exports/mydeptfolder"`
              maxLength: 1024
              example: s3://amzn-s3-demo-bucket/mydeptfolder
            sftpDetails:
              $ref: '#/components/schemas/SftpConfig'
            s3Details:
              $ref: '#/components/schemas/S3Config'
          required:
            - destinationType
            - path
    ExportStatus:
      type: object
      properties:
        status:
          type: string
          enum:
            - Pending
            - In Progress
            - Successful
            - Failed
          example: In Progress
        progress:
          type: object
          description: Details about the job's progress.
          properties:
            processed:
              type: integer
              description: The number of items processed so far.
              example: 1500
            total:
              type: integer
              description: The total number of items to process.
              example: 4500
            percentage:
              type: number
              format: float
              description: The percentage of the job that is complete.
              example: 30
        startTime:
          type: string
          format: date-time
          description: The timestamp when the job started.
          example: '2025-09-15T10:00:00.000Z'
        estimatedCompletion:
          type: string
          format: date-time
          description: The estimated timestamp when the job is expected to finish.
          example: '2025-09-15T11:30:00.000Z'
        completionTime:
          type: string
          format: date-time
          description: The timestamp when the job completed.
          example: '2025-09-15T11:25:00.000Z'
        failureTime:
          type: string
          format: date-time
          description: The timestamp when the job failed.
          example: '2025-09-15T10:45:00.000Z'
        results:
          type: object
          description: Breakdown of completed job results.
          properties:
            successful:
              type: integer
              description: The count of successfully processed items.
              example: 4485
            warnings:
              type: integer
              description: The count of items with warnings.
              example: 10
            errors:
              type: integer
              description: The count of items with errors.
              example: 5
        error:
          type: string
          description: A description of the job failure reason.
          example: Connection timeout after processing 1500 items.
      required:
        - status
    TagCategoryForExport:
      title: TagCategory
      type: object
      properties:
        id:
          description: ID of the tag category.
          type: string
          example: PROD-1046
          minLength: 7
          maxLength: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        name:
          minLength: 1
          maxLength: 255
          pattern: ^[\w\W]+$
          type: string
          description: name of the tag category.
        tagGroup:
          items:
            $ref: '#/components/schemas/schemas-TagGroup'
          type: array
        tag:
          items:
            $ref: '#/components/schemas/schemas-Tag'
          type: array
        created:
          type: object
          title: DateAndTime
          required:
            - date
          properties:
            user:
              $ref: '#/components/schemas/UserView'
            date:
              title: date
              description: The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>.
              type: string
              format: date-time
              pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          description: Date the Tag Category was created.
        lastModified:
          type: object
          title: DateAndTime
          required:
            - date
          properties:
            user:
              $ref: '#/components/schemas/UserView'
            date:
              title: date
              description: The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>.
              type: string
              format: date-time
              pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$
          description: Date of last modification.
  securitySchemes:
    oAuthUser:
      type: oauth2
      description: Authenticate as a user (agent) using code flow with PKCE.
      flows:
        authorizationCode:
          authorizationUrl: >-
            https://login.egain.cloud/f51302dd-7036-41b5-b619-e1a52a67c780/B2C_1A_User_V3_SignIn_OIDC/oauth2/v2.0/authorize?domain_hint=developerv3api.egain.cloud
          tokenUrl: >-
            https://login.egain.cloud/f51302dd-7036-41b5-b619-e1a52a67c780/B2C_1A_User_V3_SignIn_OIDC/oauth2/v2.0/token
          scopes:
            https://api.egain.cloud/auth/knowledge.portalmgr.read: Allows read access to the eGain Knowledge Portal Manager APIs.
            https://api.egain.cloud/auth/knowledge.portalmgr.manage: Allows full access to the eGain Knowledge Portal Manager APIs.
          x-usePkce:
            disableManualConfiguration: true
            hideClientSecretInput: true
      x-defaultClientId: 9924ecd8-7716-427f-9998-d87081df567a
    oAuthOnBehalfOfUser:
      type: oauth2
      description: >-
        Authenticate as a client application (server) acting on behalf of a
        user.
      flows:
        password:
          tokenUrl: >-
            https://api.egain.cloud/core/authmgr/v4/oauth2/v2.0/onbehalfof/token?user_type=user&tenantId=TMPROD69343811
          scopes:
            https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read: >-
              Allows read access to the eGain Knowledge Portal Manager APIs on
              behalf of a user.
            https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage: >-
              Allows full access to the eGain Knowledge Portal Manager APIs on
              behalf of a user.
    oAuthCustomer:
      type: oauth2
      description: Authenticate as a customer using code flow with PKCE.
      flows:
        authorizationCode:
          authorizationUrl: >-
            https://login.egain.cloud/f51302dd-7036-41b5-b619-e1a52a67c780/B2C_1A_Customer_V3_SignUpOrSignIn_OIDC/oauth2/v2.0/authorize?domain_hint=developerv3api.egain.cloud
          tokenUrl: >-
            https://login.egain.cloud/f51302dd-7036-41b5-b619-e1a52a67c780/B2C_1A_Customer_V3_SignUpOrSignIn_OIDC/oauth2/v2.0/token
          scopes:
            https://api.egain.cloud/auth/knowledge.portalmgr.read: Allows read access to the eGain Knowledge Portal Manager APIs.
            https://api.egain.cloud/auth/knowledge.portalmgr.manage: Allows full access to the eGain Knowledge Portal Manager APIs.
          x-usePkce:
            disableManualConfiguration: true
            hideClientSecretInput: true
      x-defaultClientId: 9924ecd8-7716-427f-9998-d87081df567a
    oAuthOnBehalfOfCustomer:
      type: oauth2
      description: >-
        Authenticate as a client application (server) acting on behalf of a
        customer.
      flows:
        password:
          tokenUrl: >-
            https://api.egain.cloud/core/authmgr/v4/oauth2/v2.0/onbehalfof/token?user_type=customer&tenantId=TMPROD69343811
          scopes:
            https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.read: >-
              Allows read access to the eGain Knowledge Portal Manager APIs on
              behalf of a customer.
            https://api.egain.cloud/auth/knowledge.portalmgr.onbehalfof.manage: >-
              Allows full access to the eGain Knowledge Portal Manager APIs on
              behalf of a customer.
    oAuthAnonymousCustomer:
      type: oauth2
      description: Authenticate as an anonymous customer.
      flows:
        clientCredentials:
          tokenUrl: >-
            https://login.egain.cloud/internal/oauth2/v2.0/anonymous/token?user_type=customer&domain_hint=developerv3api.egain.cloud
          scopes:
            https://api.egain.cloud/auth/knowledge.portalmgr.read: Allows read access to the eGain Knowledge Portal Manager APIs.
            https://api.egain.cloud/auth/knowledge.portalmgr.manage: Allows full access to the eGain Knowledge Portal Manager APIs.
      x-defaultClientId: 7bbc9ba6-0465-46f0-91f4-d2742cdc0ef8
    oAuthClient:
      type: oauth2
      description: Authenticate as a client (Server to Server).
      flows:
        clientCredentials:
          tokenUrl: >-
            https://login.egain.cloud/global/f51302dd-7036-41b5-b619-e1a52a67c780/oauth2/v2.0/token
          scopes:
            https://api.egain.cloud/auth/.default: Default scope
      x-defaultClientId: 7bbc9ba6-0465-46f0-91f4-d2742cdc0ef8
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    xEgainActivityId:
      name: x-egain-activity-id
      in: header
      description: A unique numeric interaction identifier from eGain.
      required: false
      schema:
        type: string
        minLength: 4
        maxLength: 9
        pattern: ^[0-9]{4,9}$
      example: '59237'
    xExtIntegrationId:
      name: x-ext-integration-id
      in: header
      description: >-
        The unique numeric identifier for a tenant, used in self-service
        functionality as well as third-party integrations.<br><br>*Note: The
        x-ext-integration-id and x-ext-interaction-id headers must always be
        provided together and cannot be supplied independently.<br><br>The
        x-egain-activity-id may be provided on its own, or it may be provided
        along with both x-ext-integration-id and x-ext-interaction-id.*
      required: false
      schema:
        type: string
        maxLength: 40
        pattern: ^[\w\W]+$
      examples:
        uuid:
          value: 3155180e-0c13-43e9-9c38-e9045bcbf176
        hex:
          value: 00Dbn00000IxGnx
    xExtInteractionId:
      name: x-ext-interaction-id
      in: header
      description: >-
        A unique interaction identifier from other CRM
        applications.<br><br>*Note: The x-ext-integration-id and
        x-ext-interaction-id headers must always be provided together and cannot
        be supplied independently.<br><br>The x-egain-activity-id may be
        provided on its own, or it may be provided along with both
        x-ext-integration-id and x-ext-interaction-id.*
      required: false
      schema:
        type: string
        maxLength: 40
        pattern: ^[\w\W]+$
      examples:
        uuid:
          value: 3155180e-0c13-43e9-9c38-e9045bcbf176
        hex:
          value: 00Dbn00000IxGnx
    acceptLanguage:
      name: Accept-Language
      in: header
      description: >-
        The Language locale accepted by the client (used for locale specific
        fields in resource representation and in error responses).
      required: true
      schema:
        type: string
        enum:
          - en-US
          - es-ES
          - fr-FR
          - it-IT
          - de-DE
          - nl-NL
          - pt-BR
          - pt-PT
          - da-DK
          - ru-RU
          - fr-CA
          - zh-CN
          - ja-JP
          - ko-KR
          - sv-SE
        example: en-US
    portalReadableId:
      name: portalID
      in: path
      required: true
      schema:
        type: string
        minLength: 7
        maxLength: 20
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        example: PROD-1000
      description: >-
        The ID of the portal being accessed.<br><br>A portal ID is composed of a
        2-4 letter prefix, followed by a dash and 4-15 digits.
    articleReadableId:
      name: articleID
      description: >-
        The ID of the Article.<br><br>An Article ID is composed of a 2-4 letter
        prefix followed by a dash and 4-15 digits.
      in: path
      required: true
      schema:
        type: string
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        minLength: 7
        maxLength: 20
        example: PROD-2996
    languageQueryParameter:
      name: $lang
      in: query
      description: >-
        The language that describes the details of a resource. Resources
        available in different languages may differ from each other.<li>If
        <code>lang</code> is not passed, then the portal's default language is
        used.</li>
      required: false
      schema:
        type: string
        enum:
          - en-US
          - fr-FR
          - en-GB
          - es-ES
          - it-IT
          - nl-NL
          - da-DA
          - sv-SE
          - pt-PT
          - fi-FI
          - no-NB
          - no-NN
          - ja-JA
          - de-DE
          - pt-BR
          - zh-CN
          - zh-TW
          - ko-KO
          - ru-RU
          - el-EL
          - tr-TR
          - pl-PL
          - cs-CS
          - sk-SK
          - hu-HU
          - sr-SR
          - ar-SA
          - hr-HR
          - ro-RO
          - th-TH
          - de-AT
          - vi-VN
          - id-ID
          - ms-MY
          - fil-PH
          - fr-CA
          - hi-IN
          - uk-UA
          - bg-BG
          - sl-SI
          - xx-XX
        example: en-US
    articleAdditionalAttributes:
      name: articleAdditionalAttributes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - articleMacro
            - availabilityDate
            - availableEditions
            - averageRating
            - bookmarkStatus
            - content
            - contentText
            - compliance
            - timesRated
            - createdBy.userName
            - modifiedBy.userName
            - ownedBy
            - ownedBy.userName
            - workflow
            - all
      description: >
        The attributes of an Article to be returned *in addition to* the default
        list of attributes, listed below. Multiple additional attributes can be
        specified using a comma-separated list. Passing 'all' will return all
        attributes.


        #### Default Attributes

        These Article attributes are always returned:


        | Name | Description 

        | ---- | -----------

        | id | The ID of the Article.

        | name  | The name of the Article.

        | additionalInfo | Additional information provided as Article metadata.

        | articleType | The Article type and its attributes.

        | articleKeywords | A comma-separated list of keywords associated with
        this Article.

        | articleState | The current state of the Article. States include A
        (Authoring), S (Staging), and P (Published).

        | articleSummary | A brief summary of the Article, provided as metadata.

        | createdBy | The ID, first name, middle name and last name of the user
        that created the Article.

        | createdDate | The date that the Article was created.

        | departmentId | ID of the department for which this Article belongs to.

        | description | The Article's description.

        | expirationDate | The date that the Article is set to expire.

        | attachments | The Article's attachments

        | imageURL | The URL of the image that is present in the Article
        version. It is used as the thumbnail image for the Article.

        | includeInGenAI | Indicates whether this Article is used for eGain's
        generative AI features.

        | isSubscribed | Indicates whether the Article is subscribed for
        notifications. 

        | languageCode | The language code of the Article language. 

        | link | The link object, used to retrieve the details of the Article.

        | modifiedBy | The ID, first name, middle name and last name of the user
        that last modified the Article.

        | modifiedDate | The date that the Article was last modified on.

        | topicBreadcrumb | Contains a list of topics from the top-level topic
        to this Article. There may be multiple paths.

        | versionId | The ID of the Article version that is returned.
      style: form
      explode: false
      examples:
        Single:
          value:
            - averageRating
          description: An additional attribute to be returned.
        Multiple:
          value:
            - ownedBy
            - ownedBy.userName
          description: Additional attributes to be returned.
        All:
          value:
            - all
          description: All additional attributes to be returned.
    customAdditionalAttributes:
      name: $customAdditionalAttributes
      in: query
      required: false
      schema:
        type: string
        pattern: ^([a-zA-Z0-9_-]+)(?:,[a-zA-Z0-9_-]+)*$
        minLength: 1
        maxLength: 4000
        description: >-
          One or more comma-separated names for custom attributes defined by the
          user to be returned.
      examples:
        Single:
          value: country_name
          description: A user-defined custom attribute.
        Multiple:
          value: internalScore,performance-rating_dept_923
          description: Multiple user-defined custom attributes.
    workflowMilestone:
      name: workflowMilestone
      in: query
      description: >-
        For agents with the View Author Portal or View Staging Portal actions,
        this determines which version of the Article is returned.<li>'Authoring'
        returns the most recent version of an Article checked-in by an
        author.</li><li>'Staging' returns the updated version currently being
        processed in a workflow.</li><li>'Publish' returns the most recently
        published version.</li>
      schema:
        type: string
        enum:
          - authoring
          - staging
          - publish
        example: publish
    mandatoryLanguageQueryParameter:
      name: $lang
      in: query
      description: >-
        The language used for fetching the details of a resource. Resources
        available in different languages may differ from each other.
      required: true
      schema:
        type: string
        enum:
          - en-US
          - fr-FR
          - en-GB
          - es-ES
          - it-IT
          - nl-NL
          - da-DA
          - sv-SE
          - pt-PT
          - fi-FI
          - no-NB
          - no-NN
          - ja-JA
          - de-DE
          - pt-BR
          - zh-CN
          - zh-TW
          - ko-KO
          - ru-RU
          - el-EL
          - tr-TR
          - pl-PL
          - cs-CS
          - sk-SK
          - hu-HU
          - sr-SR
          - ar-SA
          - hr-HR
          - ro-RO
          - th-TH
          - de-AT
          - vi-VN
          - id-ID
          - ms-MY
          - fil-PH
          - fr-CA
          - hi-IN
          - uk-UA
          - bg-BG
          - sl-SI
          - xx-XX
        example: en-US
    articleId:
      name: articleID
      in: path
      required: true
      schema:
        type: string
        minLength: 7
        maxLength: 20
        example: PROD-2996
      description: >-
        The ID of the Article. Both numeric and alternate ID formats are
        supported.<br><br>Valid numerical IDs are 15-19 digits long.
      examples:
        Readable Id:
          value: PROD-2996
          description: A readable Article ID.
        Numeric Id:
          value: '202200000002996'
          description: A numerical Article ID.
    readablePublishViewId:
      name: publishViewId
      in: path
      required: true
      description: >-
        The ID of a Publish View Id.<br><br>A Publish View Id ID is composed of
        a 2-4 letter prefix, followed by a dash and 4-15 digits.
      schema:
        type: string
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        minLength: 7
        maxLength: 20
        example: PROD-3020
    accept:
      name: Accept
      in: header
      description: The content type accepted by the client.
      required: true
      schema:
        type: string
        default: application/json
        enum:
          - application/json
    searchProfileId:
      name: searchProfileId
      in: query
      description: Search Profile ID
      schema:
        type: string
        minLength: 1
        maxLength: 15
        example: '959500000204621'
    filterTopicIdRequired:
      name: $filter[topicId]
      in: query
      required: true
      schema:
        type: string
        minLength: 7
        maxLength: 20
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
      description: The ID of the topic. It is used to restrict to a specific topic.
      example: PROD-1065
    articleResultAdditionalAttributes:
      name: articleResultAdditionalAttributes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - averageRating
            - customAttributes
            - description
            - articleSummary
            - imageURL
            - isSubscribed
            - timesRated
            - topicBreadcrumb
            - ownedBy
            - ownedBy.userName
            - workflow
            - compliance
            - personalization
            - all
      description: >
        The attributes of an Article to be returned *in addition to* the default
        list of attributes, listed below. Multiple additional attributes can be
        specified using a comma-separated list. Passing 'all' will return all
        attributes.


        #### Default Attributes

        These Article attributes are always returned:


        | Name | Description 

        | ---- | -----------

        | id | The ID of the Article.

        | name  | The name of the Article.

        | articleType | The Article Type and its attributes.

        | createdBy | The ID, first name, middle name and last name of the user
        that created the Article.

        | createdDate | The date that the Article was created.

        | hasAttachments | True: The Article has one or more
        attachments.<br>False: The Article does not have any attachments.

        | languageCode | The language code of the Article language. 

        | modifiedBy | The ID, first name, middle name and last name of the user
        that last modified the Article.

        | modifiedDate | The date that the Article was last modified on.

        | link | The link object, used to retrieve the details of the Article.

        | versionId | The ID of the Article version that is returned.
      style: form
      explode: false
      examples:
        Single:
          value:
            - averageRating
          description: An additional attribute to be returned.
        Multiple:
          value:
            - ownedBy
            - ownedBy.userName
          description: Additional attributes to be returned.
        All:
          value:
            - all
          description: All additional attributes to be returned.
    tags:
      name: $filter[tags]
      description: >-
        A comma separated list of Tag / Tag Group IDs. The query results will be
        filtered by the tags that are specified.<br><br>Tag IDs and Tag Group
        IDs can be mixed together.
      in: query
      required: false
      schema:
        type: string
        pattern: ^([a-zA-Z0-9]{2,4}-\d{4,15})(,([a-zA-Z0-9]{2,4}-\d{4,15})){0,19}$
        minLength: 7
        maxLength: 2048
        example: PROD-5381
    pagenum:
      name: $pagenum
      in: query
      description: >-
        Pagination parameter that specifies the page number of results to be
        returned. Used in conjunction with $pagesize.
      required: false
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 999
        default: 1
    pagesize:
      name: $pagesize
      in: query
      description: >-
        Pagination parameter that specifies the number of results per page. Used
        in conjunction with $pagenum.
      required: false
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 75
        default: 10
    articleSort:
      name: $sort
      in: query
      required: false
      schema:
        type: string
        enum:
          - availabilityDate
          - popularity
          - name
        example: name
      description: Articles to be sorted on.
    articleSortOrder:
      name: $order
      in: query
      required: false
      schema:
        type: string
        enum:
          - asc
          - desc
        example: asc
        description: Sort order of articles.
    attachmentId:
      name: attachmentID
      description: >-
        The ID of the attachment.<br><br>An attachment ID is composed of a 2-4
        letter prefix, followed by a dash and 4-15 digits.
      in: path
      required: true
      schema:
        type: string
        minLength: 7
        maxLength: 20
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        example: PROD-1000
    complianceArticleResultAdditionalAttributes:
      name: complianceArticleResultAdditionalAttributes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - averageRating
            - articleSummary
            - customAttributes
            - description
            - imageURL
            - isSubscribed
            - timesRated
            - topicBreadcrumb
            - ownedBy
            - ownedBy.userName
            - workflow
            - compliance
            - personalization
            - all
      description: >
        The attributes of an Article to be returned *in addition to* the default
        list of attributes, listed below. Multiple additional attributes can be
        specified using a comma-separated list. Passing 'all' will return all
        attributes.


        #### Default Attributes

        These Article attributes are always returned:


        | Name | Description 

        | ---- | -----------

        | id | The ID of the Article.

        | name  | The name of the Article.

        | updateSummary | Summary of the Article update.

        | articleType | The Article Type and its attributes.

        | createdBy | The ID, first name, middle name and last name of the user
        that created the Article.

        | createdDate | The date that the Article was created.

        | hasAttachments | True: The Article has one or more
        attachments.<br>False: The Article does not have any attachments.

        | languageCode | The language code of the Article language. 

        | modifiedBy | The ID, first name, middle name and last name of the user
        that last modified the Article.

        | modifiedDate | The date that the Article was last modified on.

        | link | The link object, used to retrieve the details of the Article.

        | versionId | The ID of the Article version that is returned.
      style: form
      explode: false
      examples:
        Single:
          value:
            - averageRating
          description: An additional attribute to be returned.
        Multiple:
          value:
            - ownedBy
            - ownedBy.userName
          description: Additional attributes to be returned.
        All:
          value:
            - all
          description: All additional attributes to be returned.
    topicReadableId:
      name: topicID
      in: path
      required: true
      description: >-
        The ID of a topic.<br><br>A topic ID is composed of a 2-4 letter prefix,
        followed by a dash and 4-15 digits.
      schema:
        type: string
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        minLength: 7
        maxLength: 20
        example: PROD-1069
    level:
      name: level
      description: Depth of the topic hierarchy to be returned in the response.
      in: query
      required: false
      schema:
        type: integer
        format: int64
        minimum: -1
        maximum: 20
        example: 1
      examples:
        AllLevels:
          value: -1
          description: All levels are returned
        Parent:
          value: 0
          description: Only parent topic is returned
        Immediate:
          value: 1
          description: Parent and immediate children topics are returned
        Grand Children:
          value: 2
          description: Immediate children and grand children are returned
    topicAdditionalAttributes:
      name: topicAdditionalAttributes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - description
            - createdBy.userName
            - createdBy.firstName
            - createdBy.lastName
            - createdBy.middleName
            - modifiedBy.userName
            - modifiedBy.firstName
            - modifiedBy.lastName
            - modifiedBy.middleName
            - imageUrl
            - textMetaData
            - all
      style: form
      explode: false
      description: >
        The attributes of a topic to be returned *in addition to* the default
        list of attributes, listed below. Multiple additional attributes can be
        specified using a comma-separated list. Passing 'all' returns all
        attributes.


        #### Default Attributes

        These topic attributes are always returned:


        | Name | Description 

        | ---- | -----------

        | id | The ID of the topic.

        | name  | The name of the topic.

        | articleCountInTopic | Number of articles in this topic.

        | articleCountInTopicTree  | Number of articles in this topic and all
        sub-topics.

        | createdBy.id | The ID of the user that created the topic. 

        | createdDate | The date when the topic was created.

        | departmentId | ID of the department for which this topic belongs to. 

        | topicHomeArticleId | The ID of the article used as the home page of
        this topic.

        | modifiedBy.id | The ID of the user that last modified the topic. 

        | modifiedDate | The date when the topic was last modified on.

        | childCount | Total number of children sub-topis below the current
        topic

        | subTopicIds | Array with the list of sub-topics

        | parentTopicId | ID of the parent topic. -1 if it is the root topic. 
      examples:
        Single:
          value:
            - modifiedBy.userName
          description: An additional attribute to be returned.
        Multiple:
          value:
            - description
            - imageUrl
          description: Additional attributes to be returned.
        All:
          value:
            - all
          description: All additional attributes to be returned.
    pagenumTopics:
      name: $pagenum
      in: query
      description: >-
        Pagination parameter that specifies the page number of results to be
        returned. Used in conjunction with $pagesize.
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 999
        default: 1
    pagesizeTopics:
      name: $pagesize
      in: query
      description: >-
        Pagination parameter that specifies the number of results per page. Used
        in conjunction with $pagenum.
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 75
        default: 10
    filterTopicId:
      name: $filter[topicId]
      in: query
      required: false
      schema:
        type: string
        minLength: 7
        maxLength: 20
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
      description: The ID of the topic. It is used to restrict to a specific topic.
      example: PROD-1067
    casebaseReleaseId:
      name: casebaseReleaseID
      in: path
      required: true
      schema:
        type: string
        pattern: ^[1-9]\d{14}$
        example: '202201000000002'
      description: >-
        The numerical ID of the Casebase Release for which details is to be
        fetched.
    filterCasebaseRelease:
      name: filter[casebaseRelease]
      in: query
      required: false
      description: Filter by Casebase Release
      schema:
        pattern: ^[1-9]\d{14}$
        type: string
        example: '202201000000002'
    contentType:
      name: Content-Type
      in: header
      description: The media type sent by the client.
      required: true
      schema:
        type: string
        default: application/json
        enum:
          - application/json
    ghCustomAdditionalAttributes:
      name: ghCustomAdditionalAttributes
      in: query
      required: false
      schema:
        type: string
        pattern: ^question\.custom\.[^,]+(?:,question\.custom\.[^,]+)*$
        minLength: 1
        maxLength: 4000
        description: >
          Custom attributes to be fetched. 


          Possible values are:

          - question.custom.\<name\> where \<name\> is the internal name of
          custom attribute of question. 'question' is used as a prefix to
          distinguish question's custom attribute from other objects custom
          attributes.
      examples:
        Single:
          value: question.custom.score
          description: A user-defined custom attribute.
        Multiple:
          value: question.custom.score,question.custom.test
          description: Multiple user-defined custom attributes.
    clusterId:
      name: clusterID
      in: path
      required: true
      description: ID of Cluster.
      schema:
        type: string
        pattern: ^[1-9]\d*$
        minLength: 10
        maxLength: 10
        example: '1000000402'
    caseId:
      name: caseID
      in: path
      required: true
      schema:
        type: string
        pattern: ^[1-9]\d*$
        minLength: 10
        maxLength: 15
        example: '1000001085'
      description: The numerical ID of the Case for which details is to be fetched.
    caseAdditionalAttributes:
      name: caseAdditionalAttributes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - questionDetail
            - actions
            - all
          example: all
      description: Additional case attributes to be fetched.
      style: form
      explode: false
      examples:
        Single:
          value:
            - actions
          description: An additional attributes to be returned.
        Multiple:
          value:
            - questionDetail
            - actions
          description: Additional attributes to be returned.
        All:
          value:
            - all
          description: All additional attributes to be returned.
    casebaseReleaseIdQuery:
      name: casebaseReleaseID
      in: query
      required: true
      schema:
        type: string
        pattern: ^[1-9]\d{14}$
        example: '202201000000002'
      description: >-
        The numerical ID of the Casebase Release for which details is to be
        fetched.
    quickpickReadableId:
      name: quickpickID
      in: path
      required: true
      schema:
        type: string
        pattern: ^[1-9]\d*$
        minLength: 1
        maxLength: 19
        example: '11'
      description: The ID of the quickpick.
    bookmarkId:
      name: bookmarkID
      description: The ID of the bookmark.
      in: path
      required: true
      schema:
        type: string
        pattern: ^[1-9]\d*$
        minLength: 4
        maxLength: 19
        example: '4759'
    userProfileIdInPath:
      name: userProfileID
      in: path
      description: |
        The ID of the user profile. 
      required: true
      schema:
        type: string
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        minLength: 7
        maxLength: 20
        description: |
          The Readable ID of the user profile.<br>
        example: PROD-3210
    sortIdNameDepartment:
      name: $sort
      in: query
      description: >-
        Objects returned in server response are sorted based on the attribute
        supplied under $sort. <br>_Default value_: name.
      required: false
      schema:
        type: string
        enum:
          - id
          - name
          - departmentName
    order:
      name: $order
      in: query
      description: 'Common query parameter $order.<br>_Default value_: asc'
      required: false
      style: form
      explode: true
      schema:
        type: string
        enum:
          - asc
          - desc
        example: asc
    pagesizeNewFrameWork:
      name: $pagesize
      in: query
      description: >-
        Pagination parameter that specifies the number of results per page. Used
        in conjunction with $pagenum.<br>Valid range of 5-75<br>_Default value_:
        25
      required: false
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 75
        default: 25
    q:
      name: q
      description: >-
        The search query string. The string must be escaped as required by the
        URL syntax rules.
      in: query
      required: true
      schema:
        pattern: ^[\w\W]+$
        type: string
        minLength: 1
        maxLength: 1024
        example: What is a loan?
    filterUserProfileID:
      name: $filter[userProfileID]
      in: query
      description: |
        The ID of the user profile. 
      required: false
      schema:
        type: string
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        minLength: 7
        maxLength: 20
        description: |
          The Readable ID of the user profile.<br>
        example: PROD-1030
    languageCode:
      name: $lang
      required: true
      in: query
      description: >-
        The language that describes the details of a resource. Resources
        available in different languages may differ from each other. <br><br> If
        lang is not passed, then the portal's default language is used.
      schema:
        type: string
        example: en-US
        enum:
          - en-US
          - fr-FR
          - en-GB
          - es-ES
          - it-IT
          - nl-NL
          - da-DA
          - sv-SE
          - pt-PT
          - fi-FI
          - no-NB
          - no-NN
          - ja-JA
          - de-DE
          - pt-BR
          - zh-CN
          - zh-TW
          - ko-KO
          - ru-RU
          - el-EL
          - tr-TR
          - pl-PL
          - cs-CS
          - sk-SK
          - hu-HU
          - sr-SR
          - ar-SA
          - hr-HR
          - ro-RO
          - th-TH
          - de-AT
          - vi-VN
          - id-ID
          - ms-MY
          - fil-PH
          - fr-CA
          - hi-IN
          - uk-UA
          - bg-BG
          - sl-SI
          - xx-XX
    filterTags:
      name: $filter[tags]
      in: query
      required: false
      schema:
        type: object
        minProperties: 1
        maxProperties: 20
        additionalProperties:
          type: array
          description: Tag Category IDs
          minItems: 0
          maxItems: 20
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
          items:
            type: string
            description: Tag IDs
            minLength: 7
            maxLength: 20
            pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
      description: |
        An object where each key is a **Category Tag ID** (numeric string),  
        and each value is an array of **Tag IDs** for that category.
         **Note**:
          - The '$filter[tags]' query parameter JSON value should be url encoded.
          - Some developer tools for invoking APIs may not url encode the '$filter[tags]' query parameter JSON value by default. Ensure that only url encoded values are used.
          - Example of JSON value: {"BASE-40845":["BASE-40849","BASE-40853"]}
          - Example of URL encoded value: %7B%22BASE-40845%22%3A%5B%22BASE-40849%22%2C%22BASE-40853%22%5D%7D
      example:
        PROD-1234:
          - PROD-2000
          - PROD-2003
        PROD-2005:
          - PROD-2007
    filterTopicIds:
      name: $filter[topicIds]
      in: query
      description: >-
        An array of topic IDs. It is used to restrict search results to specific
        topics.
      schema:
        type: array
        items:
          type: string
          pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        minItems: 1
        maxItems: 20
    articleCustomFields:
      name: articleCustomAdditionalAttributes
      in: query
      description: >-
        One or more comma-separated names for article custom attributes defined
        by the user to be returned.
      schema:
        type: string
        minLength: 1
        maxLength: 4000
    aispagenum:
      name: $pagenum
      in: query
      description: >-
        Pagination parameter that specifies the page number of results to be
        returned. Used in conjunction with $pagesize.
      required: false
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 1
        default: 1
    aispagesize:
      name: $pagesize
      in: query
      description: >-
        Pagination parameter that specifies the number of results per page. Used
        in conjunction with $pagenum.
      required: false
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 30
        default: 20
    sortIdName:
      name: $sort
      in: query
      description: >-
        Objects returned in server response are sorted based on the attribute
        supplied under $sort.
      required: false
      schema:
        type: string
        enum:
          - id
          - name
        example: id
    suggestionId:
      name: suggestionID
      description: >-
        The ID of the Suggestion.<br><br>A Suggestion ID is composed of a 2-4
        letter prefix, followed by a dash and 4-15 digits.
      in: path
      required: true
      schema:
        type: string
        pattern: ^[a-zA-Z0-9]{2,4}-\d{4,15}$
        minLength: 7
        maxLength: 20
      example: PROD-11829
    suggestionAdditionalAttributes:
      name: suggestionAdditionalAttributes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - content
            - modifiedBy.userName
            - all
      style: form
      explode: false
      description: >
        The attributes of a Suggestion to be returned *in addition to* the
        default list of attributes, listed below. Multiple additional attributes
        can be specified using a comma-separated list. Passing 'all' returns all
        attributes.


        #### Default Attributes

        These Suggestion attributes are always returned:


        | Name | Description 

        | ---- | -----------

        | id | The ID of the Suggestion.

        | name  | The name of the Suggestion.

        | status | The status of the Suggestion.

        | description | The description of the Suggestion.

        | language | Details about the language of the Suggestion.

        | modifiedBy.id | The ID of the user that last modified the Suggestion. 

        | modifiedBy.firstName | The Suggestion's last modified user's first
        name.

        | modifiedBy.middleName | The Suggestion's last modified user's middle
        name.

        | modifiedBy.lastName | The Suggestion's last modified user's last name.

        | modifiedDate | The Suggestion's last modified date <u>and</u>
        information about the user that last modified the Suggestion.

        | link | The link object, used to retrieve the details of the
        Suggestion.

        | hasComments | The Suggestion has one or more comments

        | hasAttachments | The Suggestion has one or more attachments

        | hasRelatedArticles | The Suggestion has related articles
      examples:
        Single:
          value:
            - content
          description: An additional attribute to be returned.
        Multiple:
          value:
            - content
            - modifiedBy.userName
          description: Additional attributes to be returned.
        All:
          value:
            - all
          description: All additional attributes to be returned.
    attachmentAdditionalAttributes:
      name: attachmentAdditionalAttributes
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - contentUrl
            - all
      style: form
      explode: false
      description: >
        The attributes of an attachment to be returned, along with the default
        attachment details.


        | Attribute    | Description                        |

        |--------------|------------------------------------|

        | id         | Unique identifier for the attachment |

        | fileName   | Name of the file                   |

        | contentType| Content type of the file              |

        | size       | Size of the file in bytes          |

        | link       | Link to the attachment             | 
      examples:
        Single:
          value:
            - contentUrl
          description: An additional attribute to be returned.
  responses:
    ArticleGetByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Article'
          examples:
            Summary Attributes:
              value:
                id: PROD-2996
                name: Fair Lending FAQs
                additionalInfo: Can be shared to public.
                articleType:
                  articleCategoryId: 0
                  typeName: General
                  useStructuredAuthoring: false
                  articleTypeId: '999900000002020'
                articleKeywords: >-
                  Fair lending, Fair Housing Act, Discrimination protection,
                  Residential mortgage loans, Equal opportunity housing
                articleState: P
                articleSummary: >-
                  Fair lending ensures that lenders do not discriminate based on
                  race, color,national origin, religion, sex, familial status,
                  or disability when applying forresidential mortgage loans. The
                  federal Fair Housing Act protects individuals'fair lending
                  rights, enforced by the Office of Fair Housing and Equal
                  Opportunity,along with state and local agencies. This law
                  applies to U.S. citizens, greencard holders, and undocumented
                  residents, ensuring equal opportunities in homesales, rentals,
                  and financing.
                attachments:
                  - name: eightbank.png
                    type: INTERNAL
                    size: 45152
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/attachments/PROD-1000?q=fair%2Blending&%articleAdditionalAttributes=allonalArticleResult&workflowMilestone=publish&%24lang=en-US
                    id: PROD-1000
                createdBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                createdDate: '2022-06-30T14:54:55Z'
                departmentID: '1001'
                description: Common questions and answers regarding Fair Lending.
                expirationDate: '2031-01-02T10:56:00Z'
                imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                includeInGenAI: true
                isSubscribed: true
                languageCode: en-US
                modifiedBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                modifiedDate: '2025-01-28T19:53:58Z'
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?%&workflowMilestone=publish&accessSource=article_view&publishViewId=PROD-3203&%24lang=en-US
                topicBreadcrumb:
                  - topicSummary:
                      - name: Banking Regulations
                        link:
                          rel: self
                          href: >-
                            /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                versionId: PROD-2884
            Summary Attributes with Structured Authoring enabled:
              value:
                id: PROD-2996
                name: Fair Lending FAQs
                additionalInfo: Can be shared to public.
                articleType:
                  articleCategoryId: 0
                  typeName: General
                  useStructuredAuthoring: true
                  articleTypeId: '999800000002020'
                articleKeywords: >-
                  Fair lending, Fair Housing Act, Discrimination protection,
                  Residential mortgage loans, Equal opportunity housing
                articleState: P
                articleSummary: >-
                  Fair lending ensures that lenders do not discriminate based on
                  race, color,national origin, religion, sex, familial status,
                  or disability when applying forresidential mortgage loans. The
                  federal Fair Housing Act protects individuals'fair lending
                  rights, enforced by the Office of Fair Housing and Equal
                  Opportunity,along with state and local agencies. This law
                  applies to U.S. citizens, greencard holders, and undocumented
                  residents, ensuring equal opportunities in homesales, rentals,
                  and financing.
                attachments:
                  - name: eightbank.png
                    type: INTERNAL
                    size: 45152
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/attachments/PROD-1000?q=fair%2Blending&%articleAdditionalAttributes=allonalArticleResult&workflowMilestone=publish&%24lang=en-US
                    id: PROD-1000
                createdBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                createdDate: '2022-06-30T14:54:55Z'
                departmentID: '1001'
                description: Common questions and answers regarding Fair Lending.
                expirationDate: '2031-01-02T10:56:00Z'
                hasAttachments: true
                imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                includeInGenAI: true
                languageCode: en-US
                structuredAuthoringFields:
                  confidenceLevel:
                    value: ''
                    displayValue: ''
                  issue: ''
                  environment: ''
                  cause: ''
                modifiedBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                modifiedDate: '2025-01-28T19:53:58Z'
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?workflowMilestone=publish&accessSource=article_view&publishViewId=PROD-3203&%24lang=en-US
                topicBreadcrumb:
                  - topicSummary:
                      - name: Banking Regulations
                        link:
                          rel: self
                          href: >-
                            /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                versionId: PROD-2884
            All Attributes:
              value:
                id: PROD-2996
                name: Fair Lending FAQs
                additionalInfo: Can be shared to public.
                articleType:
                  articleCategoryId: 0
                  typeName: General
                  useStructuredAuthoring: false
                  articleTypeId: '999700000002020'
                articleKeywords: >-
                  Fair lending, Fair Housing Act, Discrimination protection,
                  Residential mortgage loans, Equal opportunity housing
                articleMacro: ''
                articleState: P
                articleSummary: >-
                  Fair lending ensures that lenders do not discriminate based on
                  race, color,national origin, religion, sex, familial status,
                  or disability when applying forresidential mortgage loans. The
                  federal Fair Housing Act protects individuals'fair lending
                  rights, enforced by the Office of Fair Housing and Equal
                  Opportunity,along with state and local agencies. This law
                  applies to U.S. citizens, greencard holders, and undocumented
                  residents, ensuring equal opportunities in homesales, rentals,
                  and financing.
                attachments:
                  - name: eightbank.png
                    type: INTERNAL
                    size: 45152
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/attachments/PROD-1000?q=fair%2Blending&%articleAdditionalAttributes=allonalArticleResult&workflowMilestone=publish&%24lang=en-US
                    id: PROD-1000
                availabilityDate: '2025-01-28T19:53:58Z'
                availableEditions:
                  - id: PROD-2886
                    name: Customers
                    isContentEdition: true
                    publishProfile:
                      id: PROD-3203
                      name: default
                    link:
                      rel: article
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?%articleResultAdditionalAttributes=allonalArticleResult&workflowMilestone=publish&%24lang=en-US&edition=PROD-2886
                averageRating: 0
                bookmarkStatus:
                  isBookmarked: true
                  bookmarkID: 777700000001234
                  folderBreadcrumb:
                    folderSummary:
                      - name: content
                        link:
                          rel: self
                          href: >-
                            /knowledge/portalmgr/v4/portals/PROD-0001/bookmarks/folders/1001
                        id: 1001
                compliance:
                  startDate:
                    date: '2022-06-30T14:54:55Z'
                  dueDate:
                    date: '2025-07-30T14:54:55Z'
                content: >-
                  <h1>What is fair lending?</h1>\n\n<p>Fair lending prohibits
                  lenders from considering your race, color, national origin,
                  religion, sex, familial status, or disability when applying
                  for residential mortgage loans. Fair lending guarantees the
                  same lending opportunities to everyone.</p>\n\n\n\n\n\n<h1>If
                  I am not from the United States, does the federal Fair Housing
                  Act protect me?</h1>\n\n<p>Yes, whether you are a U.S.
                  citizen, registered alien (a “green card” holder), or an
                  undocumented resident of the U.S., you are protected by the
                  federal Fair Housing Act.</p>\n\n<h1>How can the Fair Housing
                  Act protect me when I purchase a home?</h1>\n\n<p>The federal
                  Fair Housing Act makes it unlawful to discriminate in the
                  sale, rental, or financing of homes because of race, color,
                  national origin, religion, sex, familial status, or
                  disability</p>\n
                contentText: "What is fair lending?\r\n\n\n\r\nFair lending prohibits lenders from considering your race, color, national origin, religion, sex, familial status, or disability when applying for residential mortgage loans. Fair lending guarantees the same lending opportunities to everyone.\n\n\n\n\n\n\r\nIf I am not from the United States, does the federal Fair Housing Act protect me?\r\n\n\n\r\nYes, whether you are a U.S. citizen, registered alien (a “green card” holder), or an undocumented resident of the U.S., you are protected by the federal Fair Housing Act.\n\n\r\nHow can the Fair Housing Act protect me when I purchase a home?\r\n\n\n\r\nThe federal Fair Housing Act makes it unlawful to discriminate in the sale, rental, or financing of homes because of race, color, national origin, religion, sex, familial status, or disability\n"
                createdBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                createdDate: '2022-06-30T14:54:55Z'
                departmentID: '1001'
                description: Common questions and answers regarding Fair Lending.
                expirationDate: '2031-01-02T10:56:00Z'
                hasAttachments: true
                imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                includeInGenAI: true
                isSubscribed: true
                languageCode: en-US
                structuredAuthoringFields:
                  confidenceLevel:
                    value: ''
                    displayValue: ''
                  issue: ''
                  environment: ''
                  cause: ''
                modifiedBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                modifiedDate: '2025-01-28T19:53:58Z'
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?q=fair%2Blending&%articleAdditionalAttributes=all&workflowMilestone=publish&accessSource=article_view&publishViewId=PROD-3203&%24lang=en-US
                ownedBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                timesRated: 0
                topicBreadcrumb:
                  - topicSummary:
                      - name: Banking Regulations
                        link:
                          rel: self
                          href: >-
                            /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                customAttributes: []
                versionId: PROD-2884
                workflow:
                  stages:
                    - name: publish
                      milestone:
                        name:
                          value: publish
                          displayValue: Published
    204_common_no_content:
      description: No Content
    400_common_bad_request:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Required Attribute missing:
              $ref: '#/components/examples/Required_Attribute_Missing'
            Unallowed attribute value:
              $ref: '#/components/examples/Unallowed_Attribute_Value'
    401_invalid_authorization:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Invalid Authorization:
              $ref: '#/components/examples/Invalid_Authorization'
    403_scope_not_assigned:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Required Scope Missing:
              $ref: '#/components/examples/Scope_Not_Assigned'
    404_common_not_found:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Resource Not Found:
              $ref: '#/components/examples/Resource_Not_Found'
    NotAcceptable:
      description: Not acceptable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Not Acceptable:
              $ref: '#/components/examples/NotAcceptable'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Internal Server Error:
              $ref: '#/components/examples/InternalServerError'
    ArticleGetByIdWithEditionsResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleWithEditions'
          examples:
            Article with Editions:
              value:
                id: PROD-2996
                additionalInfo: Can be shared to public.
                articleType:
                  articleCategoryId: 0
                  typeName: General
                  useStructuredAuthoring: false
                  articleTypeId: '100100000002020'
                articleKeywords: >-
                  Fair lending, Fair Housing Act, Discrimination protection,
                  Residential mortgage loans, Equal opportunity housing
                articleSummary: >-
                  Fair lending ensures that lenders do not discriminate based on
                  race, color, national origin, religion, sex, familial status,
                  or disability when applying for residential mortgage loans.
                  The federal Fair Housing Act protects individuals' fair
                  lending rights, enforced by the Office of Fair Housing and
                  Equal Opportunity, along with state and local agencies. This
                  law applies to U.S. citizens, green card holders, and
                  undocumented residents, ensuring equal opportunities in home
                  sales, rentals, and financing.
                attachments:
                  - id: PROD-1000
                    name: eightbank.png
                    size: 45152
                    type: INTERNAL
                    link:
                      rel: self
                      href: /knowledge/portalmgr/v4/articles/attachments/PROD-1000
                availabilityDate: '2025-01-28T19:53:58.000Z'
                availableEditions:
                  - id: PROD-2940
                    publishProfile:
                      id: PROD-3020
                      name: Internal
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/articles/PROD-2996/editions/PROD-3020?%24lang=en-US
                  - id: PROD-2941
                    publishProfile:
                      id: PROD-3203
                      name: Customers
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/articles/PROD-2996/editions/PROD-3203?%24lang=en-US
                averageRating: 0
                createdBy:
                  id: '1013'
                  userName: jdoe
                  firstName: John
                  middleName: ''
                  lastName: Doe
                modifiedBy:
                  id: '1013'
                  userName: jdoe
                  firstName: John
                  middleName: ''
                  lastName: Doe
                ownedBy:
                  id: '1013'
                  userName: jdoe
                  firstName: John
                  middleName: ''
                  lastName: Doe
                createdDate: '2022-06-30T07:54:55.000Z'
                customAttributes: []
                departmentID: '1001'
                description: Common questions and answers regarding Fair Lending.
                expirationDate: '2031-01-02T18:56:15.000Z'
                imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                includeInGenAI: true
                isSubscribed: false
                modifiedDate: '2025-01-28T19:53:58.000Z'
                languageCode: en-US
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/articles/PROD-2996/witheditions?%24lang=en-US
                name: Fair Lending FAQs
                articleState: P
                timesRated: 0
                versionId: PROD-2939
                workflow:
                  stages:
                    - name: publish
                      milestone:
                        name:
                          value: publish
                          displayValue: Published
                personalization:
                  filters:
                    tagCategory:
                      - name: Banking
                        id: PROD-1014
                        tags:
                          tag:
                            - name: Fair Lending
                              id: PROD-5381
                            - name: Banking Industry Regulations
                              id: PROD-2930
                        tagGroups:
                          tagGroup:
                            - name: Banking
                              id: PROD-2745
    ArticleEditionDetailsResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EditionWithContent'
          example:
            id: PROD-2940
            name: Internal
            publishProfile:
              id: PROD-3020
              name: Internal
            content: >
              <h1>What is fair lending?</h1>


              <p>Fair lending prohibits lenders from considering your race,
              color, national origin, religion, sex, familial status, or
              disability when applying for residential mortgage loans. Fair
              lending guarantees the same lending opportunities to everyone.</p>






              <h1>If I am not from the United States, does the federal Fair
              Housing Act protect me?</h1>


              <p>Yes, whether you are a U.S. citizen, registered alien (a “green
              card” holder), or an undocumented resident of the U.S., you are
              protected by the federal Fair Housing Act.</p>


              <h1>How can the Fair Housing Act protect me when I purchase a
              home?</h1>


              <p>The federal Fair Housing Act makes it unlawful to discriminate
              in the sale, rental, or financing of homes because of race, color,
              national origin, religion, sex, familial status, or disability</p>


              <p></p>
            contentText: "What is fair lending?\r\n\n\n\r\nFair lending prohibits lenders from considering your race, color, national origin, religion, sex, familial status, or disability when applying for residential mortgage loans. Fair lending guarantees the same lending opportunities to everyone.\n\n\n\n\n\n\r\nIf I am not from the United States, does the federal Fair Housing Act protect me?\r\n\n\n\r\nYes, whether you are a U.S. citizen, registered alien (a “green card” holder), or an undocumented resident of the U.S., you are protected by the federal Fair Housing Act.\n\n\r\nHow can the Fair Housing Act protect me when I purchase a home?\r\n\n\n\r\nThe federal Fair Housing Act makes it unlawful to discriminate in the sale, rental, or financing of homes because of race, color, national origin, religion, sex, familial status, or disability\n\n\r\n\n"
            accessTags:
              tagCategory:
                - name: Channel
                  tag:
                    - id: PROD-1010
                      name: Internal
                - name: Banking
                  tag:
                    - id: PROD-2196
                      name: FAQs
            link:
              rel: self
              href: >-
                /knowledge/portalmgr/v4/articles/PROD-2996/editions/PROD-3020?%24lang=en-US
    ArticleTypesGetByDepartmentResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleTypes'
          example:
            - articleTypeId: '100100000000001'
              typeName: General
              description: Knowledge
              imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
              articleCategoryId: 0
              useStructuredAuthoring: true
              isSearchable: true
              isBrowsable: true
            - articleTypeId: '100100000000002'
              typeName: General
              description: FAQ
              articleCategoryId: 0
              useStructuredAuthoring: true
              isSearchable: true
              isBrowsable: true
            - articleTypeId: '100100000000003'
              typeName: Suggestion
              description: Suggestions
              articleCategoryId: 4
              useStructuredAuthoring: true
              isSearchable: true
              isBrowsable: true
    GetTopicBreadCrumb:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TopicBreadcrumbsList'
          example:
            topicBreadcrumb:
              - topicSummary:
                  - id: PROD-1001
                    name: Digital Banking
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1001
                  - id: PROD-1072
                    name: Electronic Payments
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1072
                  - id: PROD-1075
                    name: Transfer Funds
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1075
              - topicSummary:
                  - id: PROD-1066
                    name: Checking and Savings Accounts
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1066
                  - id: PROD-1075
                    name: Transfer Funds
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1075
    415_unsupported_media_type:
      description: Incorrect Content Type Header
    ArticlesInTopicResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleResults'
          examples:
            Summary Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999200000002020'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T14:54:55Z'
                    hasAttachments: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    versionId: PROD-2884
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            All Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999100000002020'
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color,national origin, religion, sex,
                      familial status, or disability when applying
                      forresidential mortgage loans. The federal Fair Housing
                      Act protects individuals'fair lending rights, enforced by
                      the Office of Fair Housing and Equal Opportunity,along
                      with state and local agencies. This law applies to U.S.
                      citizens, greencard holders, and undocumented residents,
                      ensuring equal opportunities in homesales, rentals, and
                      financing.
                    averageRating: 0
                    compliance:
                      startDate:
                        date: '2022-06-30T14:54:55Z'
                      dueDate:
                        date: '2025-07-30T14:54:55Z'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T14:54:55Z'
                    description: Common questions and answers regarding Fair Lending.
                    hasAttachments: true
                    imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                    isSubscribed: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?24articleResultAdditionalAttributes=all&filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    versionId: PROD-2884
                    customAttributes: []
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    AttachmentGetByIdClientAppResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AttachmentContentResult'
          examples:
            GetAttachmentById:
              value:
                attachmentContent:
                  - attachmentId: PROD-1000
                    name: eightbank.png
                    type: INTERNAL
                    attachmentContentType: image/png
                    streamingUrl: >-
                      https://developerv3api.egain.cloud/system/ws/v11/internal/stream/23a8f919-f9be-4d66-b717-69f51d6044c9
                    size: 45152
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v3/portals/PROD-1000/articles/attachments/PROD-1000?%24attribute=all&%24lang=en-US
    403_client_app:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Actor Not Allowed:
              description: >
                This actor is not allowed to access this API. Refer to
                Authorization section of API description to know 

                which actors are allowed to access this API.
              value:
                code: 403-112
                developerMessage: >-
                  Unauthorized URL access: <actor> are not allowed to access
                  this URL.
            Required Scope Missing:
              description: >
                This actor does not have required scope to call this API. Refer
                to Authorization section of API 

                description to know which scope needs to be assigned to actor.
              value:
                code: 403-197
                developerMessage: >-
                  Unauthorized URL access: Logged in actor must have
                  '<required_scopes>' scope to access this URL.
    GetAttachmentByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AttachmentContentResult'
          examples:
            All Attributes:
              value:
                attachmentContent:
                  - attachmentId: PROD-1000
                    name: eightbank.png
                    type: INTERNAL
                    attachmentContentType: image/png
                    streamingUrl: >-
                      https://developerv3api.egain.cloud/system/ws/v11/internal/stream/23a8f919-f9be-4d66-b717-69f51d6044c9
                    size: 45152
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v3/portals/PROD-1000/articles/attachments/PROD-1000?%24attribute=all&%24lang=en-US
    RelatedArticlesResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleResults'
          examples:
            Summary Attributes:
              value:
                articles:
                  - id: PROD-3002
                    name: Fair Lending
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '988500000002020'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T18:25:22Z'
                    hasAttachments: false
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T20:58:11Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-3002?%&workflowMilestone=publish&filter%5Btags%5D=PROD-5381&%24lang=en-US
                    versionId: PROD-2897
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            All Attributes:
              value:
                articles:
                  - id: PROD-3002
                    name: Fair Lending
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '988200000002020'
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color, national origin, religion, sex,
                      familial status, or disability when offering residential
                      mortgage loans, guaranteeing equal opportunities for all.
                      The Office of Fair Housing and Equal Opportunity enforces
                      the federal Fair Housing Act, with state and local
                      agencies ensuring similar protections. Additional laws,
                      such as the Equal Credit Opportunities Act, also safeguard
                      your rights. For more information, visit the U.S.
                      Department of Housing and Urban Development website.
                    averageRating: 0
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T18:25:22Z'
                    description: Article detailing Fair Lending.
                    hasAttachments: false
                    imageURL: ''
                    isSubscribed: false
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T20:58:11Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-3002?%articleResultAdditionalAttributes=all&workflowMilestone=publish&filter%5Btags%5D=PROD-5381&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    customAttributes: []
                    versionId: PROD-2897
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    AnnouncementArticlesResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleResults'
          examples:
            Summary Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '988100000002020'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T14:54:55Z'
                    hasAttachments: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    versionId: PROD-2884
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            All Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '987100000002020'
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color,national origin, religion, sex,
                      familial status, or disability when applying
                      forresidential mortgage loans. The federal Fair Housing
                      Act protects individuals'fair lending rights, enforced by
                      the Office of Fair Housing and Equal Opportunity,along
                      with state and local agencies. This law applies to U.S.
                      citizens, greencard holders, and undocumented residents,
                      ensuring equal opportunities in homesales, rentals, and
                      financing.
                    averageRating: 0
                    compliance:
                      startDate:
                        date: '2022-06-30T14:54:55Z'
                      dueDate:
                        date: '2025-07-30T14:54:55Z'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T14:54:55Z'
                    description: Common questions and answers regarding Fair Lending.
                    hasAttachments: true
                    imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                    isSubscribed: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?24articleResultAdditionalAttributes=all&filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    versionId: PROD-2884
                    customAttributes: []
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    GetArticleRatingsResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleRatingsResponse'
          example:
            articleRatings:
              - id: '1000'
                articleId: PROD-29028
                ratingValue: 85
                ratingComments: Good article
                userId: '1002'
                ratingTimestamp: '2024-09-16T14:30:00Z'
              - id: '1001'
                articleId: PROD-29028
                ratingValue: 80
                ratingComments: Good article
                userId: '1005'
                ratingTimestamp: '2024-11-16T14:30:00Z'
            paginationInfo:
              count: 2
              pagenum: 1
              pagesize: 10
              link:
                - rel: next
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996/ratings?$pagenum=2
    PendingArticleComplianceResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ComplianceArticleResults'
          examples:
            Summary Article:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999500000002020'
                    updateSummary: ''
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T14:54:55Z'
                    hasAttachments: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    versionId: PROD-2884
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            All Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999400000002020'
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color,national origin, religion, sex,
                      familial status, or disability when applying
                      forresidential mortgage loans. The federal Fair Housing
                      Act protects individuals'fair lending rights, enforced by
                      the Office of Fair Housing and Equal Opportunity,along
                      with state and local agencies. This law applies to U.S.
                      citizens, greencard holders, and undocumented residents,
                      ensuring equal opportunities in homesales, rentals, and
                      financing.
                    updateSummary: ''
                    averageRating: 0
                    compliance:
                      startDate:
                        date: '2022-06-30T14:54:55Z'
                      dueDate:
                        date: '2025-07-30T14:54:55Z'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T14:54:55Z'
                    description: Common questions and answers regarding Fair Lending.
                    hasAttachments: true
                    imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                    isSubscribed: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?24articleResultAdditionalAttributes=all&filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    versionId: PROD-2884
                    customAttributes: []
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    AcknowledgedArticleComplianceResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ComplianceArticleResults'
          examples:
            Summary Article:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999500000002020'
                    updateSummary: ''
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T14:54:55Z'
                    hasAttachments: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    versionId: PROD-2884
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            All Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999400000002020'
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color,national origin, religion, sex,
                      familial status, or disability when applying
                      forresidential mortgage loans. The federal Fair Housing
                      Act protects individuals'fair lending rights, enforced by
                      the Office of Fair Housing and Equal Opportunity,along
                      with state and local agencies. This law applies to U.S.
                      citizens, greencard holders, and undocumented residents,
                      ensuring equal opportunities in homesales, rentals, and
                      financing.
                    updateSummary: ''
                    averageRating: 0
                    compliance:
                      startDate:
                        date: '2022-06-30T14:54:55Z'
                      dueDate:
                        date: '2025-07-30T14:54:55Z'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T14:54:55Z'
                    description: Common questions and answers regarding Fair Lending.
                    hasAttachments: true
                    imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                    isSubscribed: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?24articleResultAdditionalAttributes=all&filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    versionId: PROD-2884
                    customAttributes: []
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    SubscribedArticleResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleResults'
          examples:
            Summary Article:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999300000002020'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T14:54:55Z'
                    hasAttachments: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    versionId: PROD-2884
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            All Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999200000002020'
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color,national origin, religion, sex,
                      familial status, or disability when applying
                      forresidential mortgage loans. The federal Fair Housing
                      Act protects individuals'fair lending rights, enforced by
                      the Office of Fair Housing and Equal Opportunity,along
                      with state and local agencies. This law applies to U.S.
                      citizens, greencard holders, and undocumented residents,
                      ensuring equal opportunities in homesales, rentals, and
                      financing.
                    averageRating: 0
                    compliance:
                      startDate:
                        date: '2022-06-30T14:54:55Z'
                      dueDate:
                        date: '2025-07-30T14:54:55Z'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T14:54:55Z'
                    description: Common questions and answers regarding Fair Lending.
                    hasAttachments: true
                    imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                    isSubscribed: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?24articleResultAdditionalAttributes=all&filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    versionId: PROD-2884
                    customAttributes: []
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    GetTopicByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TopicTreeResult'
          examples:
            Get topic tree with $level value 0:
              value:
                topicTree:
                  - topic:
                      name: Debit Cards
                      articleCountInTopic: 4
                      articleCountInTopicTree: 4
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-08-04T16:25:45Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-09-04T16:25:45Z'
                      parentTopicId: PROD-1066
                      topicHomeArticleId: ''
                      subTopicIds: []
                      childCount: 0
                      id: PROD-1069
            Get topic tree with $level value 1:
              value:
                topicTree:
                  - topic:
                      name: Debit Cards
                      articleCountInTopic: 4
                      articleCountInTopicTree: 4
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-08-04T16:25:45Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-09-04T16:25:45Z'
                      parentTopicId: PROD-1066
                      topicHomeArticleId: ''
                      subTopicIds: []
                      childCount: 0
                      id: PROD-1069
                    topicTree: []
                paginationInfo:
                  count: 0
                  pagenum: 1
                  pagesize: 10
            Topic tree with additional attributes with $level value 0:
              value:
                topicTree:
                  - topic:
                      name: Debit Cards
                      articleCountInTopic: 4
                      articleCountInTopicTree: 4
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-08-04T16:25:45Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-09-04T16:25:45Z'
                      parentTopicId: PROD-1066
                      topicHomeArticleId: ''
                      subTopicIds: []
                      childCount: 0
                      id: PROD-1069
                      imageUrl: ''
                      description: ''
                      textMetadata:
                        highlightMetadata: []
            Topic tree with custom attributes and $level value 0:
              value:
                topicTree:
                  - topic:
                      name: Debit Cards
                      articleCountInTopic: 4
                      articleCountInTopicTree: 4
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-08-04T16:25:45Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-09-04T16:25:45Z'
                      parentTopicId: PROD-1066
                      topicHomeArticleId: ''
                      subTopicIds: []
                      childCount: 0
                      id: PROD-1069
                      customAttributes: []
    GetParentTopicsResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TopicResult'
          examples:
            Summary Attributes:
              value:
                topic:
                  - name: Checking and Savings Accounts
                    articleCountInTopic: 0
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-08-04T16:25:45Z'
                    departmentId: '1001'
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2022-09-04T16:25:45Z'
                    topicHomeArticleId: ''
                    parentTopicId: '-1'
                    childCount: 0
                    subTopicsIds: []
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v3/portals/PROD-1000/topics/PROD-1066?%24lang=en-US
                    id: PROD-1066
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            With Additional Attributes:
              value:
                topic:
                  - name: Checking and Savings Accounts
                    articleCountInTopic: 0
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-08-04T16:25:45Z'
                    departmentId: '1001'
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2022-09-04T16:25:45Z'
                    topicHomeArticleId: ''
                    parentTopicId: '-1'
                    childCount: 0
                    subTopicsIds: []
                    description: ''
                    imageUrl: ''
                    textMetadata:
                      highlightMetadata: []
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v3/portals/PROD-1000/topics/PROD-1066?%24lang=en-US
                    id: PROD-1066
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    GetAllTopicsResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TopicTreeResult'
          examples:
            Summary Attributes:
              value:
                topicTree:
                  - topic:
                      name: Online Access
                      description: ''
                      articleCountInTopic: 0
                      articleCountInTopicTree: 73
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-05-23T19:44:02Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-05-24T13:52:26Z'
                      parentTopicId: -1
                      childCount: 9
                      id: PROD-1001
                    topicTree:
                      - topic:
                          name: Accessing Your Account
                          description: ''
                          articleCountInTopic: 18
                          articleCountInTopicTree: 18
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-08T22:39:09Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-08T22:39:09Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1062
                      - topic:
                          name: Electronic Payments & Deposits
                          description: ''
                          articleCountInTopic: 3
                          articleCountInTopicTree: 3
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-07-01T14:01:38Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-07-07T17:10:33Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1152
                      - topic:
                          name: Manage Accounts
                          description: ''
                          articleCountInTopic: 16
                          articleCountInTopicTree: 16
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-09T15:15:36Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-07-12T14:33:27Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1063
                      - topic:
                          name: Membership
                          description: ''
                          articleCountInTopic: 3
                          articleCountInTopicTree: 3
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-22T19:38:45Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-22T19:38:45Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1124
                      - topic:
                          name: Mobile Banking
                          description: ''
                          articleCountInTopic: 3
                          articleCountInTopicTree: 3
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-10T14:29:46Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-10T14:30:52Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1082
                      - topic:
                          name: Personal Information
                          description: ''
                          articleCountInTopic: 2
                          articleCountInTopicTree: 2
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-10T15:28:51Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-10T15:28:51Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1090
                      - topic:
                          name: Stop Payments
                          description: ''
                          articleCountInTopic: 3
                          articleCountInTopicTree: 3
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-10T15:32:01Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-10T15:32:01Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1091
                      - topic:
                          name: Using Online Banking
                          description: ''
                          articleCountInTopic: 21
                          articleCountInTopicTree: 21
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-10T14:41:53Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-10T14:41:53Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1088
                      - topic:
                          name: Zelle
                          description: ''
                          articleCountInTopic: 4
                          articleCountInTopicTree: 4
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-10T14:31:11Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-10T18:08:01Z'
                          parentTopicId: PROD-1001
                          childCount: 0
                          id: PROD-1084
                  - topic:
                      name: Accessing Your Account
                      articleCountInTopic: 21
                      articleCountInTopicTree: 21
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-06-09T16:24:27Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-06-09T16:24:27Z'
                      parentTopicId: -1
                      childCount: 0
                      id: PROD-1064
                  - topic:
                      name: Banking Regulations
                      articleCountInTopic: 19
                      articleCountInTopicTree: 19
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-06-09T16:24:37Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-06-09T16:24:37Z'
                      parentTopicId: -1
                      childCount: 0
                      id: PROD-1065
                  - topic:
                      name: Checking and Savings Accounts
                      articleCountInTopic: 12
                      articleCountInTopicTree: 26
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-06-09T16:24:49Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-06-09T16:24:49Z'
                      parentTopicId: -1
                      childCount: 2
                      id: PROD-1066
                    topicTree:
                      - topic:
                          name: Credit Cards
                          articleCountInTopic: 10
                          articleCountInTopicTree: 10
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-09T16:25:27Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-09T16:25:27Z'
                          parentTopicId: PROD-1066
                          childCount: 0
                          id: PROD-1068
                      - topic:
                          name: Debit Cards
                          articleCountInTopic: 4
                          articleCountInTopicTree: 4
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-09T16:25:45Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-09T16:25:45Z'
                          parentTopicId: PROD-1066
                          childCount: 0
                          id: PROD-1069
                  - topic:
                      name: Claims
                      articleCountInTopic: 0
                      articleCountInTopicTree: 0
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-06-10T14:31:45Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-06-10T14:31:45Z'
                      parentTopicId: -1
                      childCount: 0
                      id: PROD-1085
                  - topic:
                      name: Loans
                      articleCountInTopic: 11
                      articleCountInTopicTree: 11
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-06-09T16:30:12Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-06-09T16:30:12Z'
                      parentTopicId: -1
                      childCount: 0
                      id: PROD-1070
                  - topic:
                      name: Membership
                      articleCountInTopic: 5
                      articleCountInTopicTree: 5
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-06-09T16:30:25Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-06-09T16:30:25Z'
                      parentTopicId: -1
                      childCount: 0
                      id: PROD-1071
                  - topic:
                      name: Using Online Banking
                      articleCountInTopic: 20
                      articleCountInTopicTree: 46
                      createdBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      createdDate: '2022-06-09T16:31:03Z'
                      departmentId: 1001
                      modifiedBy:
                        id: '1013'
                        firstName: John
                        middleName: ''
                        lastName: Doe
                      modifiedDate: '2022-06-09T16:31:03Z'
                      parentTopicId: -1
                      childCount: 3
                      id: PROD-1072
                    topicTree:
                      - topic:
                          name: Mobile Banking
                          articleCountInTopic: 3
                          articleCountInTopicTree: 3
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-09T16:31:12Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-09T16:31:12Z'
                          parentTopicId: PROD-1072
                          childCount: 0
                          id: PROD-1073
                      - topic:
                          name: Online Banking
                          articleCountInTopic: 19
                          articleCountInTopicTree: 19
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-09T16:31:24Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-09T16:31:24Z'
                          parentTopicId: PROD-1072
                          childCount: 0
                          id: PROD-1074
                      - topic:
                          name: Zelle
                          articleCountInTopic: 4
                          articleCountInTopicTree: 4
                          createdBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          createdDate: '2022-06-09T16:31:32Z'
                          departmentId: 1001
                          modifiedBy:
                            id: '1013'
                            firstName: John
                            middleName: ''
                            lastName: Doe
                          modifiedDate: '2022-06-09T16:31:32Z'
                          parentTopicId: PROD-1072
                          childCount: 0
                          id: PROD-1075
    GetPopularArticlesResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleResults'
          examples:
            Summary Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T14:54:55Z'
                    hasAttachments: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    versionId: PROD-2884
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            All Attributes:
              value:
                articles:
                  - id: PROD-2996
                    name: Fair Lending FAQs
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color,national origin, religion, sex,
                      familial status, or disability when applying
                      forresidential mortgage loans. The federal Fair Housing
                      Act protects individuals'fair lending rights, enforced by
                      the Office of Fair Housing and Equal Opportunity,along
                      with state and local agencies. This law applies to U.S.
                      citizens, greencard holders, and undocumented residents,
                      ensuring equal opportunities in homesales, rentals, and
                      financing.
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '987600000002020'
                    averageRating: 0
                    compliance:
                      startDate:
                        date: '2022-06-30T14:54:55Z'
                      dueDate:
                        date: '2025-07-30T14:54:55Z'
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T14:54:55Z'
                    description: Common questions and answers regarding Fair Lending.
                    hasAttachments: true
                    imageURL: https://hd.egain.com/images/km-for-dummies-24.jpg
                    isSubscribed: true
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T19:53:58Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-2996?24articleResultAdditionalAttributes=all&filter%5Btopic%5D=PROD-1069&workflowMilestone=publish&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    versionId: PROD-2884
                    customAttributes: []
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    GetAllCasebaseReleasesResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CasebaseResult'
          example:
            casebase:
              - name: Financial Vertical Bot
                id: '202201000000002'
                status: live
                casebaseId: '202201000000002'
                profiles:
                  - profile:
                      - name: system profile
                        id: '100100000000001'
                languages:
                  kbLanguage:
                    - name: English (US)
                      code: en-US
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002?%24lang=en-US
            paginationInfo:
              count: 1
              pagenum: 1
              pagesize: 10
    GetCasebaseReleaseByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CasebaseResult'
          example:
            casebase:
              - name: Financial Vertical Bot
                id: '202201000000002'
                status: author
                casebaseId: '202201000000002'
                profiles:
                  - profile:
                      - name: system profile
                        id: '100100000000001'
                languages:
                  kbLanguage:
                    - name: English (US)
                      code: en-US
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002?%24lang=en-US
              - name: Live
                id: '202201000000005'
                status: live
                casebaseId: '202201000000002'
                profiles:
                  - profile:
                      - name: system profile
                        id: '100100000000001'
                languages:
                  kbLanguage:
                    - name: English (US)
                      code: en-US
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000005?%24lang=en-US
    getClusterByCasebaseReleaseIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClusterResults'
          example:
            cluster:
              - name: Root Cluster
                depth: 0
                shortName: Root Cluster
                startup: false
                id: '1000000257'
              - name: ''
                depth: 1
                shortName: C1:Process the Intent
                startup: true
                id: '1000000258'
              - name: ''
                depth: 2
                shortName: C2:High Intent Confidence
                startup: false
                id: '1000000259'
              - name: ''
                depth: 3
                shortName: C3:Medium Intent Confidence
                startup: false
                id: '1000000260'
              - name: ''
                depth: 4
                shortName: 'C13: Low Confidence Intent'
                startup: false
                id: '1000002133'
              - name: ''
                depth: 1
                shortName: 'C4: Chat Escalation'
                startup: false
                id: '1000000261'
              - name: Online Banking
                depth: 1
                shortName: C7
                startup: false
                id: '1000000401'
              - name: Membership
                depth: 1
                shortName: C6
                startup: false
                id: '1000000402'
              - name: Checking and Savings Accounts
                depth: 1
                shortName: C8
                startup: false
                id: '1000000403'
              - name: Debit Card
                depth: 1
                shortName: C9
                startup: false
                id: '1000000404'
            paginationInfo:
              count: 13
              pagenum: 1
              pagesize: 10
              link:
                - rel: next
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002/clusters&$pagenum=2&$pagesize=10
    GetAllProfilesInPortal:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProfileResult'
          example:
            profile:
              - name: system profile
                id: '100100000000001'
            paginationInfo:
              count: 1
              pagenum: 1
              pagesize: 10
    GHStepSearchResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GHSearchResult'
          example:
            casebase:
              name: Financial Vertical Bot
              status: author
              casebaseId: '202201000000002'
              profiles:
                - profile:
                    - name: system profile
                      id: '100100000000001'
              id: '202201000000002'
              searchSettings:
                closeSessionOnAccept: true
                closeSessionOnReject: true
            actionSearch:
              - acceptCount: 0
                additionalInfo: true
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<iAutomatedAction><iContextSwitchCommandList><iContextSwitchAdd><iTargetClusterIdList><iId>1000000259</iId></iTargetClusterIdList></iContextSwitchAdd></iContextSwitchCommandList></iAutomatedAction>"
                articleId: ''
                caseId: '1000000332'
                passedThreshold: true
                rejectCount: 0
                score: 100
                type: control
                articleTypeAttributes:
                  typeName: General
                  useStructuredAuthoring: false
                id: '1000000265'
              - acceptCount: 0
                additionalInfo: true
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<iAutomatedAction><iContextSwitchCommandList><iContextSwitchAdd><iTargetClusterIdList><iId>1000000402</iId></iTargetClusterIdList></iContextSwitchAdd></iContextSwitchCommandList></iAutomatedAction>"
                articleId: ''
                caseId: '1000000864'
                passedThreshold: true
                rejectCount: 0
                score: 100
                type: control
                articleTypeAttributes:
                  typeName: General
                  useStructuredAuthoring: false
                id: '1000000834'
              - acceptCount: 0
                additionalInfo: true
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: >-
                      <p>For more information about all of the great benefits of
                      becoming a [Sample Company Name] member, visit Member
                      Benefits via [Sample Link to Account]. You can also
                      connect with a customer service representative via [Sample
                      Main Customer Support Phone Number], our regular business
                      hours are [Insert Customer Hours].</p>
                articleId: PROD-2827
                alternateId: PROD-2827
                caseId: '1000001087'
                passedThreshold: true
                rejectCount: 0
                shortName: Member Benefits Information
                score: 100
                type: article
                articleTypeAttributes:
                  typeName: General
                  useStructuredAuthoring: false
                id: '1000001086'
            answeredQuestion:
              - title: What about your membership do you want to learn more about?
                type: enumerated
                format: dropdown
                shortName: Q002 - What about membership?
                hasAdditionalInfo: false
                hasAction: false
                previousAnswer:
                  - depth: -1
                    isInvisible: false
                    text: Benefits of Membership
                    id: '1000001001'
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: Becoming a Member
                    id: '1000001000'
                  - depth: 1
                    isInvisible: false
                    text: Benefits of Membership
                    id: '1000001001'
                  - depth: 1
                    isInvisible: false
                    text: Discontinuing Membership
                    id: '1000001002'
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                customAttribute: []
                answerSource: user
                id: '1000001006'
              - title: '[ML]Label'
                type: enumerated
                format: dropdown
                shortName: Classifier
                hasAdditionalInfo: false
                hasAction: false
                previousAnswer:
                  - depth: -1
                    isInvisible: false
                    text: Membership
                    id: '1000000842'
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: None
                    id: '1000000272'
                  - depth: 1
                    isInvisible: false
                    text: Membership
                    id: '1000000842'
                  - depth: 1
                    isInvisible: false
                    text: Online Banking
                    id: '1000000843'
                  - depth: 1
                    isInvisible: false
                    text: Checking and Savings
                    id: '1000000844'
                  - depth: 1
                    isInvisible: false
                    text: Debit Card
                    id: '1000000845'
                  - depth: 1
                    isInvisible: false
                    text: Credit Card
                    id: '1000000846'
                  - depth: 1
                    isInvisible: false
                    text: Loans
                    id: '1000000847'
                  - depth: 1
                    isInvisible: false
                    text: Something Else
                    id: '1000000848'
                  - depth: 1
                    isInvisible: false
                    text: Chat with an Agent
                    id: '1000002048'
                action:
                  - type: article
                    shortName: AnswerAs label
                    rejectCount: 0
                    articleId: '202200000002790'
                    acceptCount: 0
                    metadata:
                      - title: ''
                        additionalInformation: ''
                        action: |-
                          {    "function": "auto-answer",
                              "var-name": "label",
                              "action": {
                                  "action-type": "",
                                  "name": "",
                                  "_comment": "modify the number and type of parameters below to match the arguments that you want to pass to the data link",
                                  "parameters": []
                              }
                          }
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                customAttribute: []
                answerSource: user
                id: '1000000327'
              - title: '[ML]Label Confidence'
                type: enumerated
                format: dropdown
                shortName: ML1
                hasAdditionalInfo: false
                hasAction: false
                previousAnswer:
                  - depth: -1
                    isInvisible: false
                    text: HIGH
                    id: '1000000303'
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: HIGH
                    id: '1000000303'
                  - depth: 1
                    isInvisible: false
                    text: MEDIUM
                    id: '1000000304'
                  - depth: 1
                    isInvisible: false
                    text: LOW
                    id: '1000000305'
                  - depth: 1
                    isInvisible: false
                    text: NA
                    id: '1000000306'
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                customAttribute: []
                answerSource: user
                id: '1000000322'
            caseSearch:
              - acceptCount: 0
                action:
                  - type: article
                    shortName: Member Benefits Information
                    rejectCount: 0
                    articleId: '202200000002827'
                    acceptCount: 0
                    metadata:
                      - title: ''
                        additionalInformation: ''
                        action: >-
                          <p>For more information about all of the great
                          benefits of becoming a [Sample Company Name] member,
                          visit Member Benefits via [Sample Link to Account].
                          You can also connect with a customer service
                          representative via [Sample Main Customer Support Phone
                          Number], our regular business hours are [Insert
                          Customer Hours].</p>
                additionalInfo: false
                metadata: []
                passedThreshold: true
                rejectCount: 0
                score: 100
                shortName: Case56
                title: Member Benefits Information
                id: '1000001087'
            dynamicSearch: []
            unansweredQuestion: []
            startupQuestion: []
            targetClusters:
              - id: '1000000258'
              - id: '1000000259'
              - id: '1000000402'
    GHStartSearchResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GHSearchResult'
          example:
            casebase:
              name: Financial Vertical Bot
              status: author
              casebaseId: '202201000000002'
              profiles:
                - profile:
                    - name: system profile
                      id: '100100000000001'
              id: '202201000000002'
              searchSettings:
                closeSessionOnAccept: true
                closeSessionOnReject: true
            actionSearch: []
            answeredQuestion: []
            caseSearch: []
            dynamicSearch: []
            unansweredQuestion:
              - title: '[ML]Label Confidence'
                type: enumerated
                format: dropdown
                shortName: ML1
                hasAdditionalInfo: true
                hasAction: true
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: HIGH
                    id: '1000000303'
                  - depth: 1
                    isInvisible: false
                    text: MEDIUM
                    id: '1000000304'
                  - depth: 1
                    isInvisible: false
                    text: LOW
                    id: '1000000305'
                  - depth: 1
                    isInvisible: false
                    text: NA
                    id: '1000000306'
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                customAttribute: []
                id: '1000000322'
              - title: '[ML]Label'
                type: enumerated
                format: dropdown
                shortName: Classifier
                hasAdditionalInfo: true
                hasAction: true
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: None
                    id: '1000000272'
                  - depth: 1
                    isInvisible: false
                    text: Membership
                    id: '1000000842'
                  - depth: 1
                    isInvisible: false
                    text: Online Banking
                    id: '1000000843'
                  - depth: 1
                    isInvisible: false
                    text: Checking and Savings
                    id: '1000000844'
                  - depth: 1
                    isInvisible: false
                    text: Debit Card
                    id: '1000000845'
                  - depth: 1
                    isInvisible: false
                    text: Credit Card
                    id: '1000000846'
                  - depth: 1
                    isInvisible: false
                    text: Loans
                    id: '1000000847'
                  - depth: 1
                    isInvisible: false
                    text: Something Else
                    id: '1000000848'
                  - depth: 1
                    isInvisible: false
                    text: Chat with an Agent
                    id: '1000002048'
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                customAttribute: []
                id: '1000000327'
            startupQuestion:
              - title: '[ML]Label Confidence'
                type: enumerated
                format: dropdown
                shortName: ML1
                hasAdditionalInfo: true
                hasAction: true
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: HIGH
                    id: '1000000303'
                  - depth: 1
                    isInvisible: false
                    text: MEDIUM
                    id: '1000000304'
                  - depth: 1
                    isInvisible: false
                    text: LOW
                    id: '1000000305'
                  - depth: 1
                    isInvisible: false
                    text: NA
                    id: '1000000306'
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                customAttribute: []
                id: '1000000322'
              - title: '[ML]Label'
                type: enumerated
                format: dropdown
                shortName: Classifier
                hasAdditionalInfo: true
                hasAction: true
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: None
                    id: '1000000272'
                  - depth: 1
                    isInvisible: false
                    text: Membership
                    id: '1000000842'
                  - depth: 1
                    isInvisible: false
                    text: Online Banking
                    id: '1000000843'
                  - depth: 1
                    isInvisible: false
                    text: Checking and Savings
                    id: '1000000844'
                  - depth: 1
                    isInvisible: false
                    text: Debit Card
                    id: '1000000845'
                  - depth: 1
                    isInvisible: false
                    text: Credit Card
                    id: '1000000846'
                  - depth: 1
                    isInvisible: false
                    text: Loans
                    id: '1000000847'
                  - depth: 1
                    isInvisible: false
                    text: Something Else
                    id: '1000000848'
                  - depth: 1
                    isInvisible: false
                    text: Chat with an Agent
                    id: '1000002048'
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                customAttribute: []
                id: '1000000327'
            targetClusters:
              - id: '1000000258'
    429_too_many_request:
      description: Too Many Request
      headers:
        X-RateLimit-Limit:
          schema:
            type: integer
            maxLength: 3600
          description: Request limit per minute.
        X-RateLimit-Remaining:
          schema:
            type: integer
            maxLength: 3600
          description: The number of requests left for the time window.
        X-RateLimit-Reset:
          schema:
            type: string
            format: date-time
          description: The UTC date/time at which the current rate limit window resets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Required Attribute missing:
              $ref: '#/components/examples/Unable_Delete_Approved_Suggestion'
            Too Many Request:
              $ref: '#/components/examples/Too_Many_Request'
    GetAllCasesInReleaseResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CaseListResults'
          example:
            case:
              - shortName: Case55
                title: Becoming a Member
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002/cases/1000001085?%24lang=en-US
                id: '1000001085'
              - shortName: Case56
                title: Member Benefits Information
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002/cases/1000001087?%24lang=en-US
                id: '1000001087'
              - shortName: Case57
                title: How to Discontinue Membership
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002/cases/1000001089?%24lang=en-US
                id: '1000001089'
            paginationInfo:
              count: 3
              pagenum: 1
              pagesize: 10
    GetCaseByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Case'
          examples:
            Summary Attribute:
              value:
                shortName: Case55
                title: Becoming a Member
                acceptCount: 0
                rejectCount: 0
                comments: ''
                profileId: '1'
                releaseId: '202201000000002'
                clusterId: '1000000402'
                isVisible: true
                thresholdValue: 50
                thresholdType: Default
                caseType: Content
                createdBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                createdDate: '2022-06-26T11:11:00Z'
                modifiedBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                modifiedDate: '2022-06-26T11:11:00Z'
                thresholdValueFromCluster: 90
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002/cases/1000001085?%24lang=en-US
                id: '1000001085'
            All Attributes:
              value:
                shortName: Case55
                title: Becoming a Member
                acceptCount: 0
                rejectCount: 0
                comments: ''
                profileId: '1'
                releaseId: '202201000000002'
                clusterId: '1000000402'
                isVisible: true
                thresholdValue: 50
                thresholdType: Default
                caseType: Content
                createdBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                createdDate: '2022-06-26T11:11:00Z'
                modifiedBy:
                  id: '1013'
                  firstName: John
                  middleName: ''
                  lastName: Doe
                modifiedDate: '2022-06-26T11:11:00Z'
                thresholdValueFromCluster: 90
                action:
                  - type: '2'
                    shortName: Becoming a Member
                    rejectCount: 0
                    articleId: '202200000002824'
                    acceptCount: 0
                    annotation: []
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999500000002020'
                metadata:
                  - title: ''
                    additionalInformation: ''
                    action: ''
                questionDetail:
                  - question:
                      id: '1000000322'
                    answer:
                      - text: HIGH
                        id: '1000000303'
                    scoringValue: 50
                  - question:
                      id: '1000000322'
                    answer:
                      - text: HIGH
                        id: '1000000303'
                    scoringValue: 50
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/gh/casebasereleases/202201000000002/cases/1000001085?%24attribute=questionDetails%2Cactions%2Ccustom&%24lang=en-US
                id: '1000001085'
    412_precondition_failed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Precondition Failed:
              $ref: '#/components/examples/Precondition_Failed'
    GetAllQuickPicksResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/QuickpickResults'
          examples:
            Singular Quickpick:
              value:
                quickpick:
                  - comment: demo%20quickpick
                    name: QuickPick82700245
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/gh/quickpicks/11?casebaseId=202201000000002&%24lang=en-US
                    id: '11'
                    linkToActivity: false
                    casebaseReleaseId: '202201000000002'
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
            Multiple Quickpick:
              value:
                quickpick:
                  - comment: demo%20quickpick
                    name: QuickPick82700245
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/gh/quickpicks/11?casebaseId=202201000000002&%24lang=en-US
                    id: '11'
                    linkToActivity: false
                    casebaseReleaseId: '202201000000002'
                  - comment: demo%20quickpick2
                    name: QuickPick82700246
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/gh/quickpicks/11?casebaseId=202201000000002&%24lang=en-US
                    id: '11'
                    linkToActivity: false
                    casebaseReleaseId: '202201000000002'
                paginationInfo:
                  count: 3
                  pagenum: 1
                  pagesize: 2
                  link:
                    - rel: next
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/gh/quickpicks/11?casebaseId=202201000000002&%24lang=en-US&$pagesize=2&$pagenum=2
    RestoreQuickPicksResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GHSearchResult'
          example:
            casebase:
              name: Financial Vertical Bot
              id: '202201000000002'
              status: live
              casebaseId: '202201000000002'
              profiles:
                - profile:
                    - name: system profile
                      id: '100100000000001'
            actionSearch:
              - acceptCount: 0
                hasAdditionalInfo: true
                metadata: []
                caseId: '1000003892'
                passedThresholdValue: false
                rejectCount: 0
                score: 50
                type: control
              - acceptCount: 0
                hasAdditionalInfo: true
                metadata: []
                articleId: PROD-2202
                caseId: '1000003897'
                passedThresholdValue: false
                rejectCount: 0
                shortName: Main Article
                score: 50
                type: article
                articleTypeAttributes:
                  typeName: General
            answeredQuestion:
              - title: Question 1
                type: list
                format: radioButton
                hasAdditionalInfo: false
                hasAction: false
                previousAnswer:
                  - depth: -1
                    isInvisible: false
                    text: Benefits of Membership
                    id: '1000001001'
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: 'yes'
                    id: '1000003848'
                  - depth: 1
                    isInvisible: false
                    text: 'no'
                    id: '1000003849'
                metadata: []
                customAttributes: []
                id: '100000385200000'
            caseSearch:
              - acceptCount: 0
                action: []
                additionalInfo: true
                metadata: []
                answeredQuestion: []
                passedThresholdValue: false
                rejectCount: 0
                score: 50
                shortName: Case4
                title: Main Article
                caseId: '1000003897'
              - acceptCount: 0
                action: []
                additionalInfo: true
                metadata: []
                answeredQuestion: []
                passedThresholdValue: false
                rejectCount: 0
                score: 50
                shortName: Case1
                title: Action
                caseId: '1000003892'
            dynamicSearch: []
            unansweredQuestion:
              - title: Question 2
                type: list
                format: radioButton
                shortName: Q2
                hasAdditionalInfo: true
                hasAction: false
                validAnswer:
                  - depth: 1
                    isInvisible: false
                    text: 'yes'
                    id: '1000003854'
                  - depth: 1
                    isInvisible: false
                    text: 'no'
                    id: '1000003855'
                metadata: []
                customAttributes: []
                id: '100000385800000'
            startupQuestion: []
            targetClusters:
              - id: '100000384300000'
              - id: '100000384400000'
    GetBookmarksResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BookmarkResult'
          examples:
            Summary Attributes:
              value:
                bookmark:
                  - resourceId: PROD-2996
                    resourceType: 1
                    portalId: PROD-1000
                    resourceName: Fair Lending FAQs
                    bookmarkName: ''
                    externalContentId: ''
                    id: 1002
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 10
    GetAllProfilesAssignedToUserResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserProfiles'
          example:
            profile:
              - name: Loans Agents
                isLastUsedInPortal: false
                id: PROD-3210
              - name: Credit Cards Supervisors
                isLastUsedInPortal: false
                id: PROD-3226
              - name: Loans Supervisors
                isLastUsedInPortal: true
                id: PROD-3215
              - name: Voice Agent
                isLastUsedInPortal: false
                id: PROD-1037
              - name: Self-Service
                isLastUsedInPortal: false
                id: PROD-1026
              - name: Digital Agent
                isLastUsedInPortal: false
                id: PROD-1030
              - name: Banking Agents
                isLastUsedInPortal: false
                id: PROD-3205
              - name: Credit Card Agents
                isLastUsedInPortal: false
                id: PROD-3221
    GetUserDetailsResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserDetails'
          example:
            user:
              - id: '1067'
                roles:
                  - id: '1026'
                    name: agent
                    template:
                      value": ''
                      displayValue": ''
                firstName: John
                lastName: Smith
                hasEmailConfigured: false
    GetArticleListsInPortalResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleListsResult'
          example:
            articleList:
              - name: New Articles
                typeId: '10'
                description: Recently added articles in KB
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articlelists/1003?%24lang=en-US
                id: PROD-1003
              - name: Updated Articles
                typeId: '11'
                description: Recently  changed articles in KB
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articlelists/1004?%24lang=en-US
                id: PROD-1004
              - name: Lending
                typeId: '50'
                description: Lending related articles in KB
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articlelists/PROD-3258?%24lang=en-US
                id: PROD-3258
    GetArticleListByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticleList'
          examples:
            Summary Attributes:
              value:
                name: Lending
                typeId: '50'
                description: Lending related articles in KB
                articles:
                  - id: PROD-3002
                    name: Fair Lending
                    articleType:
                      id: 0
                      typeName: General
                      useStructuredAuthoring: false
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T18:25:22Z'
                    hasAttachments: false
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T20:58:11Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-3002?%&workflowMilestone=publish&filter%5Btags%5D=PROD-5381&%24lang=en-US
                    versionId: PROD-2897
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articlelists/PROD-3258?%24lang=en-US
                id: PROD-3258
            All Attributes:
              value:
                name: Lending
                typeId: '50'
                description: Lending related articles in KB
                articles:
                  - id: PROD-3002
                    name: Fair Lending
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color, national origin, religion, sex,
                      familial status, or disability when offering residential
                      mortgage loans, guaranteeing equal opportunities for all.
                      The Office of Fair Housing and Equal Opportunity enforces
                      the federal Fair Housing Act, with state and local
                      agencies ensuring similar protections. Additional laws,
                      such as the Equal Credit Opportunities Act, also safeguard
                      your rights. For more information, visit the U.S.
                      Department of Housing and Urban Development website.
                    articleType:
                      id: 0
                      typeName: General
                      useStructuredAuthoring: false
                    averageRating: 0
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T18:25:22Z'
                    description: Article detailing Fair Lending.
                    hasAttachments: false
                    imageURL: ''
                    isSubscribed: false
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T20:58:11Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-3002?%articleResultAdditionalAttributes=all&workflowMilestone=publish&filter%5Btags%5D=PROD-5381&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    customAttributes: []
                    versionId: PROD-2897
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/articlelists/PROD-3258?%24lang=en-US
                id: PROD-3258
    GetAllPortalsResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PortalResult'
          example:
            portal:
              - id: PZ-9999
                name: Master Portal
                departmentId: '999'
                description: >-
                  Automatically created portal allowing access to all published
                  articles
                defaultContentLanguageId: '1'
                defaultContentLanguageCode: en-US
                createdBy:
                  id: '1004'
                  firstName: pa
                  middleName: ''
                  lastName: developer
                  userName: pa_Developer
                createdDate: '2022-03-09T00:22:14Z'
                modifiedBy:
                  id: '1004'
                  firstName: pa
                  middleName: ''
                  lastName: developer
                  userName: pa_Developer
                modifiedDate: '2023-10-18T16:13:53Z'
                isStructuredAuthoringEnabled: false
                isManageDraftVisibilityEnabled: false
                portalSettings:
                  isAnnoucementsEnabled: false
                  isAgentsSSOEnabled: false
                  isAgentsDelegatedAuthenticationEnabled: false
                  isPopularArticlesListEnabled: false
                  popularArticlesListInfluenceWeight: 10
                  popularArticlesListInfluencePeriod: 1
                  appendSessionJourneyToEmail: false
                  isArticleSuggestionsBeforeEscalationEnabled: false
                  isEscalationToEmailEnabled: false
                  numberOfSuggestedArticlesBeforeEscalation: 0
                  isGHInSearchResultsEnabled: false
                  webSearchDomain: ''
                  intranetSearchURL: ''
                  questionMatchingEngineURL: ''
                  isCaptchaEnabled: false
                  captchaSiteKey: ''
                  isArticleSharingEnabled: false
                  tagCategoriesForSearchFilter:
                    tagCategory: []
                  maxWebSearchResults: 5
                  maxIntranetSearchResults: 5
                  isSearchAutocompleteEnabled: true
                  isWebSearchEnabled: false
                  isIntranetSearchEnabled: false
                  isCustomAttributesFilteringEnabled: true
                  isSpellcheckEnabled: true
                  searchLearningInclusionThreshold: 5
                  searchLearningInfluence: 0
                  searchLearningMaxInfluence: 300
                  searchLearningLevel: 0
                  searchRelatedTermsMinResultsThreshold: 10
                  searchRelatedTermWeight: 0.25
                  customAttributesForSearchFilter: []
                  isGHEnabled: false
                  isGHStartupQuestionsBeforeUnansweredQuestionsEnabled: true
                  isGHDetailsForSearchEnabled: false
                  isGHShortNameInSearchEnabled: false
                  GHFailureSuccessThreshold: 0
                  maxGHAnsweredQuestions: 10
                  maxGHUnansweredQuestions: 10
                  maxGHSearchResults: 0
                  isGHResultsShownOnSuccessfulSearch: false
                  isGHControlActionDiagnosticsEnabled: false
                  isGHClusterScopeDiagnosticsEnabled: false
                  isRelatedArticlesEnabled: true
                  isArticleFeedbackEnabled: true
                  isArticleFeedbackCommentsEnabled: false
                  isArticleFeedbackSummaryEnabled: false
                  isRelatedArticlesInSameTopicEnabled: true
                  isAuthenticationRequired: true
                  isArticleSuggestionsEnabled: true
                  isMySuggestionsEnabled: true
                  customerProfileAttributes:
                    attribute:
                      - name: firstName
                        mandatory: false
                        editable: true
                      - name: lastName
                        mandatory: false
                        editable: true
                      - name: emailAddress
                        mandatory: false
                        editable: true
                kbLanguages:
                  kbLanguage:
                    - name: English (US)
                      code: en-US
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PZ-9999?departmentId=999&%24lang=en-US
            paginationInfo:
              count: 1
              pagenum: 1
              pagesize: 10
    GetAllPortalsAccessibleToAgentResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AllAccessiblePortals'
          examples:
            All Portal with only default Short URL:
              description: By default, shortURL only contains single object
              value:
                portal:
                  - name: Master Portal
                    description: >-
                      Automatically created portal allowing access to all
                      published articles
                    department:
                      name: Service
                      id: '999'
                    shortURL:
                      - id: PROD-1000
                        templateName: silver
                        shortURLName: 9BAED8
                        isDefault: true
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PZ-9999?filterText=master&department=service&shortUrlTemplate=silver&%24lang=en-US
                    id: PZ-9999
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 25
            All Portal with default/non-default Short URL:
              description: >-
                If shortUrlTemplate name is passed in parameter then shortURL
                might contains multiple objects
              value:
                portal:
                  - id: PROD-2278
                    name: Support Portal
                    description: Portal Description
                    link:
                      rel: self
                      href: /knowledge/portalmgr/v4/portals/PROD-2278
                    department:
                      id: '999'
                      name: service
                    shortURL:
                      - id: PROD-1008
                        templateName: silver
                        shortURLName: XEMrao
                        isDefault: false
                  - id: PROD-2279
                    name: Escalation Portal
                    description: Portal Description
                    link:
                      rel: self
                      href: /knowledge/portalmgr/v4/portals/PROD-2279
                    department:
                      id: '1005'
                      name: escalation
                    shortURL:
                      - id: PROD-1002
                        templateName: silver
                        shortURLName: XEMrao
                        isDefault: true
                      - id: PROD-1001
                        templateName: silver
                        shortURLName: XEMrap
                        isDefault: false
                    paginationInfo:
                      count: 6
                      pagenum: 2
                      pagesize: 2
                      link:
                        - rel: prev
                          href: >-
                            /knowledge/portalmgr/v4/portals?$pagenum=1&$pagesize=2
                        - rel: next
                          href: >-
                            /knowledge/portalmgr/v4/portals?$pagenum=3&$pagesize=2
    GetPortalByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Portal'
          example:
            id: PZ-9999
            name: Master Portal
            departmentId: '999'
            description: >-
              Automatically created portal allowing access to all published
              articles
            defaultContentLanguageId: '1'
            defaultContentLanguageCode: en-US
            createdBy:
              id: '1004'
              firstName: pa
              middleName: ''
              lastName: developer
              userName: pa_Developer
            createdDate: '2022-03-09T00:22:14Z'
            modifiedBy:
              id: '1004'
              firstName: pa
              middleName: ''
              lastName: developer
              userName: pa_Developer
            modifiedDate: '2023-10-18T16:13:53Z'
            isStructuredAuthoringEnabled: false
            isManageDraftVisibilityEnabled: false
            portalSettings:
              isAnnoucementsEnabled: false
              isAgentsSSOEnabled: false
              isAgentsDelegatedAuthenticationEnabled: false
              isPopularArticlesListEnabled: false
              popularArticlesListInfluenceWeight: 10
              popularArticlesListInfluencePeriod: 1
              appendSessionJourneyToEmail: false
              isArticleSuggestionsBeforeEscalationEnabled: false
              isEscalationToEmailEnabled: false
              numberOfSuggestedArticlesBeforeEscalation: 0
              isGHInSearchResultsEnabled: false
              webSearchDomain: ''
              intranetSearchURL: ''
              questionMatchingEngineURL: ''
              isCaptchaEnabled: false
              captchaSiteKey: ''
              isArticleSharingEnabled: false
              tagCategoriesForSearchFilter:
                tagCategory: []
              maxWebSearchResults: 5
              maxIntranetSearchResults: 5
              isSearchAutocompleteEnabled: true
              isWebSearchEnabled: false
              isIntranetSearchEnabled: false
              isCustomAttributesFilteringEnabled: true
              isSpellcheckEnabled: true
              searchLearningInclusionThreshold: 5
              searchLearningInfluence: 0
              searchLearningMaxInfluence: 300
              searchLearningLevel: 0
              searchRelatedTermsMinResultsThreshold: 10
              searchRelatedTermWeight: 0.25
              customAttributesForSearchFilter: []
              isGHEnabled: false
              isGHStartupQuestionsBeforeUnansweredQuestionsEnabled: true
              isGHDetailsForSearchEnabled: false
              isGHShortNameInSearchEnabled: false
              GHFailureSuccessThreshold: 0
              maxGHAnsweredQuestions: 10
              maxGHUnansweredQuestions: 10
              maxGHSearchResults: 0
              isGHResultsShownOnSuccessfulSearch: false
              isGHControlActionDiagnosticsEnabled: false
              isGHClusterScopeDiagnosticsEnabled: false
              isRelatedArticlesEnabled: true
              isArticleFeedbackEnabled: true
              isArticleFeedbackCommentsEnabled: false
              isArticleFeedbackSummaryEnabled: false
              isRelatedArticlesInSameTopicEnabled: true
              isAuthenticationRequired: true
              isArticleSuggestionsEnabled: true
              isMySuggestionsEnabled: true
              customerProfileAttributes:
                attribute:
                  - name: firstName
                    mandatory: false
                    editable: true
                  - name: lastName
                    mandatory: false
                    editable: true
                  - name: emailAddress
                    mandatory: false
                    editable: true
            kbLanguages:
              kbLanguage:
                - name: English (US)
                  code: en-US
            link:
              rel: self
              href: >-
                /knowledge/portalmgr/v4/portals/PZ-9999?departmentId=999&%24lang=en-US
    GetSuggestionByStatus:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Suggestions'
          examples:
            Summary Attributes:
              value:
                suggestion:
                  - link:
                      - rel: self
                        href: >-
                          /knowledge/portalmgr/v4/portals/PROD-1000/suggestions/PROD-3259
                    name: Missing Article Information
                    description: Missing Account Type Information
                    content: >-
                      <p>There should be an article that explains the account
                      types offered. That would be very helpful.<br /></p>
                    status:
                      value: suggested
                      displayValue: Suggested
                    modifiedBy:
                      firstName: John
                      middleName: ''
                      lastName: Smith
                      id: '1067'
                    modifiedDate: '2025-01-23T04:16:17.000Z'
                    language:
                      code: en-us
                      label: English (US)
                    hasRelatedArticles: false
                    hasAttachments: false
                    hasComments: true
                    customAttribute: []
                    id: PROD-3259
                paginationInfo:
                  count: 1
                  pagenum: 1
                  pagesize: 25
    GetSuggestionById:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Suggestion'
          examples:
            Summary Attributes:
              value:
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/suggestions/PROD-3259
                name: Missing Article Information
                description: Missing Account Type Information
                content: >-
                  <p>There should be an article that explains the account types
                  offered. That would be very helpful.<br /></p>
                status:
                  value: suggested
                  displayValue: Suggested
                modifiedBy:
                  firstName: John
                  middleName: ''
                  lastName: Smith
                  id: '1067'
                modifiedDate: '2025-01-23T04:16:17.000Z'
                language:
                  code: en-US
                  label: English
                hasRelatedArticles: false
                hasAttachments: false
                hasComments: true
                customAttribute: []
                id: PROD-3259
    400_resource_cannot_be_deleted:
      description: Bad Request
    GetRelatedArticlesForSuggestion:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FeedbackArticleForSuggestion'
          examples:
            Summary Attributes:
              value:
                name: Feedback
                id: PROD-3259
                relatedArticles:
                  - id: PROD-3002
                    name: Fair Lending
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    createdDate: '2022-06-30T18:25:22Z'
                    hasAttachments: false
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                    modifiedDate: '2025-01-28T20:58:11Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-3002?%&workflowMilestone=publish&filter%5Btags%5D=PROD-5381&%24lang=en-US
                    versionId: PROD-2897
            All Attributes:
              value:
                name: Feedback
                id: PROD-3259
                relatedArticles:
                  - id: PROD-3002
                    name: Fair Lending
                    articleSummary: >-
                      Fair lending ensures that lenders do not discriminate
                      based on race, color, national origin, religion, sex,
                      familial status, or disability when offering residential
                      mortgage loans, guaranteeing equal opportunities for all.
                      The Office of Fair Housing and Equal Opportunity enforces
                      the federal Fair Housing Act, with state and local
                      agencies ensuring similar protections. Additional laws,
                      such as the Equal Credit Opportunities Act, also safeguard
                      your rights. For more information, visit the U.S.
                      Department of Housing and Urban Development website.
                    articleType:
                      articleCategoryId: 0
                      typeName: General
                      useStructuredAuthoring: false
                      articleTypeId: '999500000001291'
                    averageRating: 0
                    createdBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    createdDate: '2022-06-30T18:25:22Z'
                    description: Article detailing Fair Lending.
                    hasAttachments: false
                    imageURL: ''
                    isSubscribed: false
                    languageCode: en-US
                    modifiedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    modifiedDate: '2025-01-28T20:58:11Z'
                    link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/articles/PROD-3002?%articleResultAdditionalAttributes=all&workflowMilestone=publish&filter%5Btags%5D=PROD-5381&%24lang=en-US
                    ownedBy:
                      id: '1013'
                      firstName: John
                      middleName: ''
                      lastName: Doe
                      userName: jdoe
                    timesRated: 0
                    topicBreadcrumb:
                      - topicSummary:
                          - name: Banking Regulations
                            link:
                              rel: self
                              href: >-
                                /knowledge/portalmgr/v4/portals/PROD-1000/topics/PROD-1080
                    customAttributes: []
                    versionId: PROD-2897
                    workflow:
                      stages:
                        - name: publish
                          milestone:
                            name:
                              value: publish
                              displayValue: Published
    GetSuggestionComments:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Comments'
          examples:
            Summary Attributes:
              value:
                count: 1
                comments:
                  - content: Great suggestion! We will put this on our To-Do list.
                    createdBy:
                      firstName: John
                      lastName: Doe
                      id: '1013'
                    createDate: '2025-01-23T04:48:25.000Z'
                    id: '1000'
    GetSuggestionAttachments:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Attachments'
          examples:
            Summary Attributes:
              value:
                attachments:
                  - link:
                      rel: self
                      href: >-
                        /knowledge/portalmgr/v4/portals/PROD-1000/suggestions/attachments/PROD-1001
                    fileName: eightbank.png
                    size: 45152
                    id: PROD-1001
    GetSuggestionAttachmentById:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SuggestionAttachment'
          examples:
            Summary Attributes:
              value:
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v4/portals/PROD-1000/suggestions/attachments/PROD-1001
                fileName: eightbank.png
                size: 45152
                id: PROD-1001
            All Attributes:
              value:
                link:
                  rel: self
                  href: >-
                    /knowledge/portalmgr/v3/portals/202200000001000/suggestions/attachments/202200000001001
                fileName: eightbank.png
                size: 45152
                contentUrl: >-
                  https://developerv3api.egain.cloud/system/ws/internal/stream/resource/326330575442636564427A74632F776B4A53374F44677530754C546E5862784B6455326B6F64352F6A6C33773049664B37744C76476A665973707937555842504B794E6B667465525A6430630D0A7855456D486B4849444C363463767758557A5579636D6B744A3657634931664D757639775152374769456F654132654667666D68376E314D6B504746784B6B597A5171574E5657454472785A0D0A6E44335370615045524666314141725172485867496650333875314835753445773746675177795657782B5258705779
                id: PROD-1001
    GetUserMilestonesResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Milestones'
          example:
            milestone:
              - name:
                  value: publish
                  displayValue: Published
    ArticlePermissionsGetByIdResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ArticlePermissionsResult'
          example:
            articleID: EGSP-2433
            permissions:
              view: true
              edit: false
    GetPersonalizationResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Personalization'
          example:
            accessTags:
              tagCategory: []
            filters:
              tagCategory:
                - name: Banking
                  tags:
                    tag:
                      - name: Fair Lending
                        id: PROD-5381
                      - name: Banking Industry Regulations
                        id: PROD-2930
                  tagGroups:
                    tagGroup:
                      - name: Banking
                        id: PROD-2745
                  id: PROD-1014
            publishViews:
              publishView:
                - name: Internal
                  tagCategories:
                    - tagCategory:
                        - name: Channel
                          tags:
                            tag:
                              - name: Internal
                                id: PROD-1010
                          id: PROD-1004
                        - name: Banking
                          tags:
                            tag:
                              - name: FAQs
                                id: PROD-2196
                          id: PROD-1014
                  id: PROD-5520
                - name: Customers
                  id: PROD-5521
    BadRequestResponse:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Invalid Article Id:
              value:
                code: 400-108
                developerMessage: >-
                  Invalid path parameter value: '0'. A numeric or a readable ID
                  is expected.
            Invalid Portal Id:
              value:
                code: 400-105
                developerMessage: >-
                  Invalid query parameter value: '0'. A positive integer is
                  expected.
            Invalid workflow milestone:
              value:
                code: 400-102
                developerMessage: >-
                  Unsupported value for query parameter 'workflowMilestone'.
                  Only the following values are supported:
                  'publish,staging,authoring'.
            Invalid $lang:
              value:
                code: 400-1132
                developerMessage: KB language sample_language is not available in the system.
    UnauthorizedResponse:
      description: Unauthorized Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          example:
            code: 401-101
            developerMessage: >-
              Invalid or expired 'X-egain-session' header provided. New login is
              required.
    ForbiddenResponse:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            User Not Allowed:
              value:
                code: 403-105
                developerMessage: User is not allowed to perform this action.
            Customer Not Allowed on Portal:
              value:
                code: 403-568
                developerMessage: Portal 999900000000000 does not allow customer access.
            Milestone not assigned:
              value:
                code: 403-193
                developerMessage: Article milestone staging is not assigned to user
            Personalization disabled:
              value:
                code: 403-9007
                developerMessage: Personalisation is currently disabled on this setup.
    NotFoundResponse:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Portal Id Not Found:
              value:
                code: 404-470
                developerMessage: >-
                  The following IDs supplied in the URI path were not found:
                  '999900000012345'
            Article Id Not Found:
              value:
                code: 404-470
                developerMessage: >-
                  The following IDs supplied in the URI path were not found:
                  '409600000012345'
    UnsupportedAcceptLanguageResponse:
      description: Unsupported Accept-Language value in Header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          example:
            code: 406-100
            developerMessage: Invalid Accept-Language header value.
    InternalServerErrorResponse:
      description: Internal Server Error. Returned when unexpected error is encountered
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          example:
            code: 500-100
            developerMessage: >-
              System is unable to process this request. Please contact your
              administrator.
    GetTagCategoriesForInterestForPortal:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TagCategoriesForInterest'
          example:
            tagCategory:
              - name: Banking
                tagGroup:
                  - name: Banking
                    tag:
                      - name: Buying a Home
                        id: PROD-1016
                      - name: Interest Rate
                        id: PROD-1018
                      - name: Checking and Savings Accounts
                        id: PROD-1020
                      - name: Loans
                        id: PROD-1022
                      - name: Credit and Debit Cards
                        id: PROD-1024
                      - name: Online Banking
                        id: PROD-1756
                      - name: Alerts
                        id: PROD-1797
                      - name: Claims
                        id: PROD-1911
                      - name: Applications and Forms
                        id: PROD-2048
                      - name: FAQs
                        id: PROD-2196
                    id: PROD-2745
                tag:
                  - name: Banking Industry Regulations
                    id: PROD-2930
                  - name: Fees
                    id: PROD-3809
                  - name: Fair Lending
                    id: PROD-5381
                id: PROD-1014
    AttachmentPreuploadResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Attachment'
          examples:
            All Attributes:
              value:
                altId: f665fb41-6485-43c3-a2c8-c72857c29f74
                name: article.png
                contentUrl: >-
                  https://EG5842ain.ezdev.net/knowledge/portalmgr/v4/attachmnet/upload?signature=3552656867434671616F6C51786335674B764E7848586E786B383255555A41574F6B656F542B396258677A334341322F2B32336F434D6D6E47637955714C6A6E4D527476666C534E4C6232520D0A4F6F70637259773043515A6778596949586F3247666B6E624350386336563446624C5446746C546B2F324A734E425939634758507465722B6C584435685747734C4A2B6C626342732F426E640D0A4D7965456452564A6670525069536D2B43423232384A67724F636C4161654F39336F42784942354C6776462F50724D67674A3248527253504C53457551596A7A6D4B347A4F7A63416C7047450D0A39556133495776504A4875336D77757330773D3D
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Unsupported Parameters:
              $ref: '#/components/examples/UnsupportedParameters'
            Invalid Value:
              $ref: '#/components/examples/InvalidValue'
            Missing required query parameter:
              $ref: '#/components/examples/MissingParameter'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Unauthorized:
              $ref: '#/components/examples/Unauthorized'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Forbidden:
              $ref: '#/components/examples/Forbidden'
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WSErrorCommon'
          examples:
            Not found:
              $ref: '#/components/examples/NotFound'
  examples:
    Required_Attribute_Missing:
      description: Required query parameter is missing.
      value:
        code: 400-112
        developerMessage: >-
          Required query parameter(s) is missing. The following parameters are
          required: <param name>
    Unallowed_Attribute_Value:
      description: One of the attributes has a value which is not allowed.
      value:
        code: 400-196
        developerMessage: >-
          Invalid value of attribute <attribute>, expected values are:
          [<possible_values>].
    Invalid_Authorization:
      description: >
        Invalid or expired authorization. Generate a new authorization header
        and try again.
      value:
        code: 401-104
        developerMessage: Invalid or missing 'authorization' header value.
    Scope_Not_Assigned:
      description: >
        User doesn't have the required scope to call this API. Refer to the API
        documentation regarding user scope assignment for more information.
      value:
        code: 403-197
        developerMessage: Not authorized to perform this action.
    Resource_Not_Found:
      description: Resource not found.
      value:
        code: 404-101
        developerMessage: 'The following IDs provided in the URI path were not found: <id>'
    NotAcceptable:
      value:
        code: 406-100
        developerMessage: The 'Accept-Language' header value is invalid.
    InternalServerError:
      value:
        code: 500-100
        developerMessage: >-
          System is unable to process this request. Please contact your
          administrator.
    Unable_Delete_Approved_Suggestion:
      description: The resource cannot be deleted.
      value:
        code: 400-113
        developerMessage: >-
          The Suggestion you are trying to delete has been approved and cannot
          be removed.
    Too_Many_Request:
      description: |
        Too many requests. Try again at a later time.
      value:
        code: 429-001
        developerMessage: Too many requests.
    Precondition_Failed:
      description: |
        A prerequisite condition for this request has not been met.
      value:
        code: 412-100
        developerMessage: 'Precondition failed: <prerequisite requirement>.'
    SftpDestinationExample:
      summary: Export configuration using an SFTP destination
      value:
        articleCategories: searchable
        portalID: PROD-1000
        language:
          code: en-US
        resourceTypes:
          - articles
        dataDestination:
          destinationType: SFTP server
          path: exports/mydeptfolder
          sftpDetails:
            username: rtka-user
            password: xyz1234
            host: sftp.yourcompany.com
            port: 22
    S3DestinationExample:
      summary: Export configuration using an AWS S3 bucket destination
      value:
        articleCategories: searchable
        portalID: PROD-1000
        language:
          code: en-US
        resourceTypes:
          - articles
        dataDestination:
          destinationType: AWS S3 bucket
          path: s3://amzn-s3-demo-bucket/mydeptfolder
          s3Details:
            region: us-west-2
            accessKey: s3-access-key
            secretKey: s3-access-secret
    UnsupportedParameters:
      value:
        code: 400-101
        developerMessage: 'Unsupported query parameter(s) supplied: ''<query_parameter>''.'
    InvalidValue:
      value:
        code: 400-152
        developerMessage: >-
          Invalid value is provided in the request body for the following
          attribute:'<attribute_name>'.
    MissingParameter:
      value:
        code: 400-112
        developerMessage: >-
          Required query parameter(s) is missing. The following parameters are
          required: '<query_parameter>'.
    Unauthorized:
      value:
        code: 401-101
        developerMessage: >-
          Invalid or expired 'Authorization' header provided. New login is
          required.
    Forbidden:
      value:
        code: 403-178
        developerMessage: 'User is not allowed to perform the following action: <action_name>.'
    NotFound:
      value:
        code: 404-100
        developerMessage: >-
          The following IDs supplied in the URI path were not found:
          '<resource_id>'.
