Replicated enterprisePortal API

The enterprisePortal API from Replicated — 27 operation(s) for enterpriseportal.

Operations 36

GET /app/{app_id}/enterprise-portal/access Get download portal access settings #
PUT /app/{app_id}/enterprise-portal/access Update download portal access settings #
GET /app/{app_id}/enterprise-portal/branding Get custom branding for the enterprise portal #
PUT /app/{app_id}/enterprise-portal/branding Update custom branding for the enterprise portal #
POST /app/{app_id}/enterprise-portal/content-repos/{repo_id}/template-updates/acknowledge Mark pending upstream content template updates reviewed for the current user. #
PUT /app/{app_id}/enterprise-portal/content-settings Update Enterprise Portal content settings for an app. #
POST /app/{app_id}/enterprise-portal/content-versions/pin Pin a release version label to an existing content branch #
DELETE /app/{app_id}/enterprise-portal/content-versions/{version_id} Delete a content version #
POST /app/{app_id}/enterprise-portal/content-versions/{version_id}/dismiss-notice Clear the sync notice for a content version. #
GET /app/{app_id}/enterprise-portal/customer-allowed-domains List customer allowed domains for the enterprise portal #
POST /app/{app_id}/enterprise-portal/customer-allowed-domains Create a customer allowed domain for the enterprise portal #
DELETE /app/{app_id}/enterprise-portal/customer-allowed-domains/{allowedDomainId} Delete a customer allowed domain for the enterprise portal #
POST /app/{app_id}/enterprise-portal/customer-user Invite a customer user to the enterprise portal #
DELETE /app/{app_id}/enterprise-portal/customer-user #
GET /app/{app_id}/enterprise-portal/customer-users List customer users for the enterprise portal #
GET /app/{app_id}/enterprise-portal/documentation Get documentation URLs for various installation methods #
PUT /app/{app_id}/enterprise-portal/documentation Update documentation URLs #
GET /app/{app_id}/enterprise-portal/email-history List email history for the enterprise portal #
GET /app/{app_id}/enterprise-portal/failed-login-attempts List failed login attempts #
GET /app/{app_id}/enterprise-portal/features Get Enterprise Portal feature settings for an app #
PUT /app/{app_id}/enterprise-portal/features Update Enterprise Portal feature settings for an app #
GET /app/{app_id}/enterprise-portal/install-attempts List installation attempts for the enterprise portal #
POST /app/{app_id}/enterprise-portal/install-options Create an installation options record #
DELETE /app/{app_id}/enterprise-portal/install-options/{install_options_id} Delete an installation options record #
PATCH /app/{app_id}/enterprise-portal/install-options/{install_options_id} Update an installation options record #
GET /app/{app_id}/enterprise-portal/install-options/{option_id} Get an install options record #
GET /app/{app_id}/enterprise-portal/install-options/{option_id}/update-instructions Get update instructions #
GET /app/{app_id}/enterprise-portal/instances List instances #
GET /app/{app_id}/enterprise-portal/service-accounts List service accounts #
DELETE /app/{app_id}/enterprise-portal/service-accounts/{serviceAccountId} Delete (revoke) a service account #
GET /app/{app_id}/enterprise-portal/settings #
PUT /app/{app_id}/enterprise-portal/settings #
GET /app/{app_id}/enterprise-portal/status Get enterprise portal status #
PUT /app/{app_id}/enterprise-portal/status Update status of the enterprise portal #
POST /app/{app_id}/enterprise-portal/system-user-login Create a one-time login URL for Enterprise Portal using a system user for the specified customer. #
GET /app/{app_id}/enterprise-portal/update-attempts List customer update attempts #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/replicated-enterpriseportal-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

replicated-enterpriseportal-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Manage enterprise portal users, install options, branding, documentation, email templates, and access control.
  title: Vendor API V3 apps Enterprise Portal API
  contact:
    name: Replicated, Inc.
    url: http://www.replicated.com/
    email: info@replicated.com
  version: 3.0.0
servers:
- url: https://api.replicated.com/vendor/v3
tags:
- name: enterprisePortal
paths:
  /app/{app_id}/enterprise-portal/access:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/[:appid]/enterprise-portal/access/read'
      tags:
      - enterprisePortal
      summary: Get download portal access settings
      operationId: getEnterprisePortalAccess
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getEnterprisePortalAccessResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/{app_id}/enterprise-portal/access/update'
      tags:
      - enterprisePortal
      summary: Update download portal access settings
      operationId: updateEnterprisePortalAccess
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/updateEnterprisePortalAccessResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                auto_invite_to_ep_on_create:
                  description: 'Whether to automatically invite the customer email to Enterprise Portal on customer creation.

                    Requires download_portal_disabled to be true.'
                  type: boolean
                  x-go-name: AutoInviteToEpOnCreate
                download_portal_disabled:
                  description: Whether the download portal is disabled. When set to false, auto_invite_to_ep_on_create is automatically disabled.
                  type: boolean
                  x-go-name: DownloadPortalDisabled
        description: JSON input
        required: true
  /app/{app_id}/enterprise-portal/branding:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/[:appid]/enterprise-portal/branding/read'
      tags:
      - enterprisePortal
      summary: Get custom branding for the enterprise portal
      operationId: getEnterprisePortalBranding
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getEnterprisePortalBrandingResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/{app_id}/enterprise-portal/branding/update'
      tags:
      - enterprisePortal
      summary: Update custom branding for the enterprise portal
      operationId: updateEnterprisePortalBranding
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getEnterprisePortalBrandingResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - branding
              properties:
                activeEnterprisePortalTemplate:
                  description: 'Active default template name: "docs", "custom", or empty'
                  type: string
                  x-go-name: ActiveEnterprisePortalTemplate
                branding:
                  description: Branding object that will be parsed by the enterprise portal
                  type: string
                  x-go-name: Branding
        description: Update custom branding for the enterprise portal
  /app/{app_id}/enterprise-portal/content-repos/{repo_id}/template-updates/acknowledge:
    post:
      security:
      - api_key: []
      - Required RBAC Policy: []
      tags:
      - enterprisePortal
      summary: Mark pending upstream content template updates reviewed for the current user.
      operationId: acknowledgeContentTemplateUpdates
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - x-go-name: RepoID
        description: Content repository identifier
        name: repo_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/acknowledgeContentTemplateUpdatesResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/content-settings:
    put:
      description: 'Required RBAC Policy: kots/app/[:appId]/enterprise-portal/documentation/update'
      tags:
      - enterprisePortal
      summary: Update Enterprise Portal content settings for an app.
      operationId: updateEnterprisePortalContentSettings
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/updateContentSettingsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                hide_unmatched_content_versions:
                  type: boolean
                  x-go-name: HideUnmatchedContentVersions
  /app/{app_id}/enterprise-portal/content-versions/pin:
    post:
      security:
      - api_key: []
      - Required RBAC Policy: []
      description: 'Creates a virtual content branch row that pins a release version label to

        the content of an existing real branch.'
      tags:
      - enterprisePortal
      summary: Pin a release version label to an existing content branch
      operationId: createContentVersionPin
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/createContentVersionPinResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - version_label
              properties:
                replace_existing:
                  description: 'When true, an existing pin row with the same version_label is

                    removed before the new one is created. Used by `--replace` from the

                    CLI and the Edit affordance in the vendor portal.'
                  type: boolean
                  x-go-name: ReplaceExisting
                source_branch_pattern:
                  description: 'Semver-shaped pattern resolved server-side to the highest matching

                    branch (e.g. "1.x.x", "1.2.x"). Mutually exclusive with

                    source_version_id.'
                  type: string
                  x-go-name: SourceBranchPattern
                source_version_id:
                  description: 'ID of the existing content version whose content is pinned. Mutually

                    exclusive with source_branch_pattern.'
                  type: string
                  x-go-name: SourceVersionID
                version_label:
                  description: Release version label to pin
                  type: string
                  x-go-name: VersionLabel
        description: JSON input
        required: true
  /app/{app_id}/enterprise-portal/content-versions/{version_id}:
    delete:
      security:
      - api_key: []
      - Required RBAC Policy: []
      description: 'Removes a content version row and its pages, toc, and theme.

        Mainly used to remove pin rows. Real-branch rows can be deleted too —

        they''ll be recreated (empty) on the next sync.'
      tags:
      - enterprisePortal
      summary: Delete a content version
      operationId: deleteContentVersion
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - x-go-name: VersionID
        description: Content version identifier
        name: version_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/deleteContentVersionResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/content-versions/{version_id}/dismiss-notice:
    post:
      security:
      - api_key: []
      - Required RBAC Policy: []
      tags:
      - enterprisePortal
      summary: Clear the sync notice for a content version.
      operationId: dismissContentVersionNotice
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - x-go-name: VersionID
        description: Content version identifier
        name: version_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/dismissContentVersionNoticeResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/customer-allowed-domains:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy:

        kots/app/[:appid]/enterprise-portal/customer-allowed-domains/read

        kots/app/[:appid]/license/[:customer_id]/read'
      tags:
      - enterprisePortal
      summary: List customer allowed domains for the enterprise portal
      operationId: listCustomerAllowedDomains
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - x-go-name: FilterCustomerID
        description: Filter by customer ID
        name: customer_id
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listCustomerAllowedDomainsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
    post:
      security:
      - api_key: []
      description: 'Required RBAC Policy:

        kots/app/[:appid]/enterprise-portal/customer-allowed-domains/create

        kots/app/[:appid]/license/[:customer_id]/read'
      tags:
      - enterprisePortal
      summary: Create a customer allowed domain for the enterprise portal
      operationId: createCustomerAllowedDomain
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/createCustomerAllowedDomainResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                customer_id:
                  type: string
                  x-go-name: CustomerID
                domain:
                  type: string
                  x-go-name: Domain
        description: Create a customer allowed domain for the enterprise portal
        required: true
  /app/{app_id}/enterprise-portal/customer-allowed-domains/{allowedDomainId}:
    delete:
      security:
      - api_key: []
      description: 'Required RBAC Policy:

        kots/app/[:appid]/enterprise-portal/customer-allowed-domains/delete

        kots/app/[:appid]/license/[:customer_id]/read'
      tags:
      - enterprisePortal
      summary: Delete a customer allowed domain for the enterprise portal
      operationId: deleteCustomerAllowedDomain
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - x-go-name: AllowedDomainID
        description: The allowed domain ID to delete
        name: allowedDomainId
        in: path
        required: true
        schema:
          type: string
      - x-go-name: CustomerID
        description: The customer ID for the allowed domain
        name: customer_id
        in: query
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/responseNoContent'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/customer-user:
    post:
      security:
      - api_key: []
      - Required RBAC Policy: []
      description: Invite a customer user to the enterprise portal, sending an invite email to the customer user.
      tags:
      - enterprisePortal
      summary: Invite a customer user to the enterprise portal
      operationId: inviteEnterprisePortalCustomerUser
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          $ref: '#/components/responses/inviteEnterprisePortalCustomerUserResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                customer_id:
                  type: string
                  x-go-name: CustomerID
                email_address:
                  type: string
                  x-go-name: EmailAddress
        description: Invite a customer user to the enterprise portal
        required: true
    delete:
      security:
      - api_key: []
      - Required RBAC Policy: []
      description: Delete a customer user for the enterprise portal
      tags:
      - enterprisePortal
      operationId: deleteEnterprisePortalCustomerUser
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - description: The email address of the user to delete
        name: EmailAddress
        in: query
        schema:
          type: string
      - x-go-name: CustomerID
        description: The customer ID which the user belongs to
        name: customer_id
        in: query
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/responseNoContent'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/customer-users:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy:

        kots/app/[:appid]/enterprise-portal/customer-users/read

        kots/app/[:appid]/license/[:customer_id]/read'
      tags:
      - enterprisePortal
      summary: List customer users for the enterprise portal
      operationId: listEnterprisePortalCustomerUsers
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - name: ExcludeInvites
        in: query
        schema:
          type: boolean
          default: false
      - description: Filter by customer ID
        name: FilterCustomerID
        in: query
        schema:
          type: string
      - description: Filter by email address
        name: FilterEmail
        in: query
        schema:
          type: string
      - name: Limit
        in: query
        schema:
          type: integer
          format: int64
      - name: Offset
        in: query
        schema:
          type: integer
          format: int64
      - name: Sort
        in: query
        schema:
          type: string
      - name: Order
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listEnterprisePortalCustomerUsersResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/documentation:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/[:appid]/enterprise-portal/documentation/read'
      tags:
      - enterprisePortal
      summary: Get documentation URLs for various installation methods
      operationId: getEnterprisePortalDocumentation
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getDocumentationResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
    put:
      security:
      - api_key: []
      description: 'Update documentation URLs and markdown content for various installation methods


        Required RBAC Policy: kots/app/[:appid]/enterprise-portal/documentation/update'
      tags:
      - enterprisePortal
      summary: Update documentation URLs
      operationId: updateEnterprisePortalDocumentation
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/updateDocumentationResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                embeddedClusterInstallURL:
                  description: URL for Embedded Cluster installation documentation
                  type: string
                  x-go-name: EmbeddedClusterInstallURL
                embeddedClusterPostInstall:
                  description: Markdown content for Embedded Cluster post-installation steps
                  type: string
                  x-go-name: EmbeddedClusterPostInstall
                embeddedClusterPreInstall:
                  description: Markdown content for Embedded Cluster pre-installation steps
                  type: string
                  x-go-name: EmbeddedClusterPreInstall
                helmInstallURL:
                  description: URL for Helm installation documentation
                  type: string
                  x-go-name: HelmInstallURL
                helmPostInstall:
                  description: Markdown content for Helm post-installation steps
                  type: string
                  x-go-name: HelmPostInstall
                helmPreInstall:
                  description: Markdown content for Helm pre-installation steps
                  type: string
                  x-go-name: HelmPreInstall
                kotsInstallURL:
                  description: URL for KOTS installation documentation
                  type: string
                  x-go-name: KOTSInstallURL
                kurlInstallURL:
                  description: URL for kURL installation documentation
                  type: string
                  x-go-name: KURLInstallURL
                valuesOverrideURL:
                  description: URL for Values Override documentation
                  type: string
                  x-go-name: ValuesOverrideURL
        description: JSON input
        required: true
  /app/{app_id}/enterprise-portal/email-history:
    get:
      security:
      - api_key: []
      description: 'Returns a paginated list of emails sent through the enterprise portal with their delivery status.


        Required RBAC Policy:

        kots/app/{app_id}/enterprise-portal/email-history/read'
      tags:
      - enterprisePortal
      summary: List email history for the enterprise portal
      operationId: listEnterprisePortalEmailHistory
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - description: Filter by email type (login, invite, version_update)
        name: EmailType
        in: query
        schema:
          type: string
      - description: Filter by status (sent, delivered, bounced, spam_complaint)
        name: Status
        in: query
        schema:
          type: string
      - description: Filter by customer ID
        name: CustomerID
        in: query
        schema:
          type: string
      - name: Limit
        in: query
        schema:
          type: integer
          format: int64
          default: 25
      - name: Offset
        in: query
        schema:
          type: integer
          format: int64
          default: 0
      responses:
        '200':
          $ref: '#/components/responses/listEnterprisePortalEmailHistoryResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/failed-login-attempts:
    get:
      security:
      - api_key: []
      description: 'List failed login attempts for the enterprise portal users.



        Required RBAC Policy: kots/app/[:appid]/enterprise-portal/failed-login-attempts/read'
      tags:
      - enterprisePortal
      summary: List failed login attempts
      operationId: listFailedLoginAttempts
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - description: Maximum number of results to return
        name: Limit
        in: query
        schema:
          type: integer
          format: int64
      - description: Number of results to skip
        name: Offset
        in: query
        schema:
          type: integer
          format: int64
      - description: Filter by email address
        name: FilterEmail
        in: query
        schema:
          type: string
      - description: Sort field
        name: Sort
        in: query
        schema:
          type: string
      - description: Sort order (asc or desc)
        name: Order
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listFailedLoginAttemptsResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
  /app/{app_id}/enterprise-portal/features:
    get:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/[:appid]/read'
      tags:
      - enterprisePortal
      summary: Get Enterprise Portal feature settings for an app
      operationId: getPortalFeatures
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getPortalFeaturesResponse'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
    put:
      security:
      - api_key: []
      description: 'Required RBAC Policy: kots/app/[:appid]/update'
      tags:
      - enterprisePortal
      summary: Update Enterprise Portal feature settings for an app
      operationId: updatePortalFeatures
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getPortalFeaturesResponse'
        '400':
          $ref: '#/components/responses/responseErrBadRequest'
        '401':
          $ref: '#/components/responses/responseErrUnauthorized'
        '403':
          $ref: '#/components/responses/responseErrForbidden'
        '404':
          $ref: '#/components/responses/responseErrNotFound'
      servers:
      - url: https://api.replicated.com/vendor/v3
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                askAiEnabled:
                  description: Whether the Ask AI assistant should be enabled in the Enterprise Portal.
                  type: boolean
                  x-go-name: AskAiEnabled
                supportBundleUploadEnabled:
                  description: Whether support bundle upload should be enabled in the Enterprise Portal.
                  type: boolean
                  x-go-name: SupportBundleUploadEnabled
  /app/{app_id}/enterprise-portal/install-attempts:
    get:
      security:
      - api_key: []
      - Required RBAC Policy: []
      description: List install attempts for a customer or all customers in the app.
      tags:
      - enterprisePortal
      summary: List installation attempts for the enterprise portal
      operationId: listInstallAttempts
      parameters:
      - x-go-name: AppID
        description: App identifier
        name: app_id
        in: path
        required: true
        schema:
          type: string
      - description: Filter by a specific customer ID
        name: FilterCustomerID
        in: query
        schema:
          type: string
      - description: Filter by a specific instance ID
        name: FilterInstanceID
        in: query
        schema:
          type: string
      - description: Maximum number of results to return
        name: Limit
        in: query
        schema:
          type: integer
          format: int64
      - description: Number of results to skip
        name: Offset
        in: query
        schema:
          type: integer
          format: int64
      - description: Filter by status
        name: FilterStatus
        in: query
        schema:
          type: string
      responses:
        '200':
    

# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/replicated/refs/heads/main/openapi/replicated-enterpriseportal-api-openapi.yml