Kong Portal Emails API

APIs related to Konnect Developer Portal Emails.

Operations 19

GET /v3/portals/{portalId}/email-config Get the email config for the portal #
POST /v3/portals/{portalId}/email-config Create the email config for a portal #
PATCH /v3/portals/{portalId}/email-config Setup the email config for a portal #
DELETE /v3/portals/{portalId}/email-config Delete portal email config #
GET /v3/portals/{portalId}/email-delivery Get the email delivery for the portal #
PATCH /v3/portals/{portalId}/email-delivery Setup the email delivery for a portal #
DELETE /v3/portals/{portalId}/email-delivery Delete email delivery #
GET /v3/portals/{portalId}/email-templates List custom email templates for a portal #
GET /v3/portals/{portalId}/email-templates/{templateName} Get custom email template used in a portal #
PATCH /v3/portals/{portalId}/email-templates/{templateName} Update custom email template for a portal #
DELETE /v3/portals/{portalId}/email-templates/{templateName} Delete custom email template #
POST /v3/portals/{portalId}/email-templates/{templateName}/send-test-email Send Test Email #
GET /v3/portals/email-domains List email domains #
POST /v3/portals/email-domains Create an email domain #
GET /v3/portals/email-domains/{emailDomain} Get an email domain #
DELETE /v3/portals/email-domains/{emailDomain} Delete an email domain #
GET /v3/portals/email-templates List default email templates #
GET /v3/portals/email-templates/{templateName} Get default email template #
GET /v3/portals/email-templates/variables List email template variables #

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/kong-portal-emails-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

kong-portal-emails-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Konnect API - Go SDK Portal Emails API
  version: 3.14.0
  description: The Konnect platform API
  contact:
    name: Kong Inc
    url: https://konghq.com
    email: support@konghq.com
  x-extensions-note: "This API uses the `x-expression` vendor extension to indicate that a string property is a DSL expression.\nSupported types:\n\n\n  - `boolean`: An expression evaluates to boolean. For example, `context.topic.name == 'my-topic'`\n  - `string`: A template string expression that evaluates to a string or a literal string value. For example,\n    `${context.topic.name.substring(0, context.topic.name.length-4)}` or `my-literal-value`\n\nAdditionally, `x-sensitive` flag indicates that a field contains sensitive information. When the value\nof the field is provided in plain text, it's encrypted at rest and it's never returned in API responses.\nWhen the value is an expression, the expression itself is stored and returned in API responses.\n\n`x-min-runtime-version` indicates the minimum Event Gateway runtime version required to use a certain policy or\npolicy feature. The runtime version can be configured at the Event Gateway entity level. It must be a string\ncontaining a semantic version in the `MAJOR.MINOR` format, e.g., `\"1.1\"`.\n"
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-oas-source: kong/platform-api@
  x-oas-source-link: https://github.com/Kong/platform-api/commit/
servers:
- url: https://global.api.konghq.com
- url: https://us.api.konghq.com
- url: https://eu.api.konghq.com
- url: https://au.api.konghq.com
security:
- personalAccessToken: []
- systemAccountAccessToken: []
- konnectAccessToken: []
- serviceAccessToken: []
tags:
- name: Portal Emails
  description: APIs related to Konnect Developer Portal Emails.
paths:
  /v3/portals/{portalId}/email-config:
    parameters:
    - $ref: '#/components/parameters/PortalId'
    get:
      operationId: get-email-config
      summary: Get the email config for the portal
      description: Retrieve the email config for the portal
      responses:
        '200':
          $ref: '#/components/responses/PortalEmailConfigResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
    post:
      operationId: create-portal-email-config
      summary: Create the email config for a portal
      description: Create the email config for a portal
      requestBody:
        $ref: '#/components/requestBodies/PostPortalEmailConfigPayload'
      responses:
        '201':
          $ref: '#/components/responses/PortalEmailConfigResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConflictError'
      tags:
      - Portal Emails
    patch:
      operationId: update-portal-email-config
      summary: Setup the email config for a portal
      description: Setup the email config for a portal
      requestBody:
        $ref: '#/components/requestBodies/PatchPortalEmailConfigPayload'
      responses:
        '200':
          $ref: '#/components/responses/PortalEmailConfigResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
    delete:
      operationId: delete-portal-email-config
      summary: Delete portal email config
      description: Delete portal email config
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/{portalId}/email-delivery:
    parameters:
    - $ref: '#/components/parameters/PortalId'
    get:
      operationId: get-email-delivery
      summary: Get the email delivery for the portal
      description: Retrieve the email delivery for the portal
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailDelivery'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      deprecated: true
      tags:
      - Portal Emails
    patch:
      operationId: update-email-delivery
      summary: Setup the email delivery for a portal
      description: Setup the email delivery for a portal
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailDeliveryUpdatePayload'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailDelivery'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      deprecated: true
      tags:
      - Portal Emails
    delete:
      operationId: delete-email-delivery
      summary: Delete email delivery
      description: Delete email delivery
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      deprecated: true
      tags:
      - Portal Emails
  /v3/portals/{portalId}/email-templates:
    parameters:
    - $ref: '#/components/parameters/PortalId'
    get:
      operationId: list-portal-custom-email-templates
      summary: List custom email templates for a portal
      description: List custom email templates
      responses:
        '200':
          $ref: '#/components/responses/ListEmailTemplates'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/{portalId}/email-templates/{templateName}:
    parameters:
    - $ref: '#/components/parameters/PortalId'
    - $ref: '#/components/parameters/EmailTemplateName'
    get:
      operationId: get-portal-custom-email-template
      summary: Get custom email template used in a portal
      description: Get custom email template
      responses:
        '200':
          $ref: '#/components/responses/EmailTemplate'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
    patch:
      operationId: update-portal-custom-email-template
      summary: Update custom email template for a portal
      description: Update custom email template
      requestBody:
        $ref: '#/components/requestBodies/PatchCustomPortalEmailTemplatePayload'
      responses:
        '200':
          $ref: '#/components/responses/PatchEmailTemplateResponse'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
    delete:
      operationId: delete-portal-custom-email-template
      summary: Delete custom email template
      description: Delete custom email template for a portal. This will revert to using the default template
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/{portalId}/email-templates/{templateName}/send-test-email:
    post:
      operationId: post-portal-custom-email-test-send
      summary: Send Test Email
      description: 'Send a test email based on the portal''s email template, using the content provided in the request.

        The email will be sent to the Konnect user who triggered the test.'
      parameters:
      - $ref: '#/components/parameters/PortalId'
      - $ref: '#/components/parameters/EmailTemplateName'
      requestBody:
        $ref: '#/components/requestBodies/PostSendTestEmailPayload'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/email-domains:
    get:
      operationId: list-email-domains
      summary: List email domains
      description: List email domains
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/SortEmailDomains'
      - name: filter
        in: query
        description: Filter email domains returned in the response.
        required: false
        schema:
          $ref: '#/components/schemas/EmailDomainFilterParameters'
        style: deepObject
      responses:
        '200':
          description: List of a email domains
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDomains'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Portal Emails
    post:
      operationId: create-email-domain
      summary: Create an email domain
      description: Create an email domain
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailDomainPayload'
      responses:
        '201':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailDomain'
        '400':
          description: Bad Request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/email-domains/{emailDomain}:
    parameters:
    - $ref: '#/components/parameters/EmailDomain'
    get:
      operationId: get-email-domain
      summary: Get an email domain
      description: Get an email domain
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailDomain'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
    delete:
      operationId: delete-email-domain
      summary: Delete an email domain
      description: Delete an email domain
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/email-templates:
    get:
      operationId: list-default-email-templates
      summary: List default email templates
      description: List default email templates
      responses:
        '200':
          $ref: '#/components/responses/ListDefaultEmailTemplates'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/email-templates/{templateName}:
    parameters:
    - $ref: '#/components/parameters/EmailTemplateName'
    get:
      operationId: get-default-email-template
      summary: Get default email template
      description: Get default email template
      responses:
        '200':
          $ref: '#/components/responses/DefaultEmailTemplate'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
  /v3/portals/email-templates/variables:
    get:
      operationId: list-email-template-variables
      summary: List email template variables
      description: List email template variables
      responses:
        '200':
          $ref: '#/components/responses/EmailTemplateVariables'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Portal Emails
components:
  schemas:
    BaseError:
      description: standard error
      type: object
      properties:
        status:
          description: 'The HTTP status code of the error. Useful when passing the response

            body to child properties in a frontend UI. Must be returned as an integer.

            '
          type: integer
          readOnly: true
        title:
          description: 'A short, human-readable summary of the problem. It should not

            change between occurences of a problem, except for localization.

            Should be provided as "Sentence case" for direct use in the UI.

            '
          type: string
          readOnly: true
        type:
          description: The error type.
          type: string
          readOnly: true
        instance:
          description: 'Used to return the correlation ID back to the user, in the format

            kong:trace:<correlation_id>. This helps us find the relevant logs

            when a customer reports an issue.

            '
          type: string
          readOnly: true
        detail:
          description: 'A human readable explanation specific to this occurence of the problem.

            This field may contain request/entity data to help the user understand

            what went wrong. Enclose variable values in square brackets. Should be

            provided as "Sentence case" for direct use in the UI.

            '
          type: string
          readOnly: true
      required:
      - status
      - title
      - instance
      - detail
      title: Error
    BadRequestError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        required:
        - invalid_parameters
        properties:
          invalid_parameters:
            $ref: '#/components/schemas/InvalidParameters'
    InvalidParameterMinimumLength:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
          - min_length
          - min_digits
          - min_lowercase
          - min_uppercase
          - min_symbols
          - min_items
          - min
          nullable: false
          readOnly: true
          x-speakeasy-unknown-values: allow
        minimum:
          type: integer
          example: 8
        source:
          type: string
          example: body
        reason:
          type: string
          example: must have at least 8 characters
          readOnly: true
      additionalProperties: false
      required:
      - field
      - reason
      - rule
      - minimum
    UpdatedAt:
      description: An ISO-8601 timestamp representation of entity update date.
      type: string
      format: date-time
      example: '2022-11-04T20:10:06.927Z'
      readOnly: true
      x-speakeasy-param-suppress-computed-diff: true
    StringFieldFilter:
      description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`'
      type: object
      properties:
        eq:
          description: The field exactly matches the provided value.
          type: string
        contains:
          description: The field contains the provided value.
          type: string
        ocontains:
          description: The field contains any of the provided values.
          type: string
        oeq:
          description: The field matches any of the provided values.
          type: string
        neq:
          description: The field does not match the provided value.
          type: string
      additionalProperties: false
    CreatedAt:
      description: An ISO-8601 timestamp representation of entity creation date.
      type: string
      format: date-time
      example: '2022-11-04T20:10:06.927Z'
      readOnly: true
      x-speakeasy-param-suppress-computed-diff: true
    DefaultEmailTemplateContent:
      type: object
      properties:
        subject:
          type: string
          nullable: false
        title:
          type: string
          nullable: false
        body:
          type: string
          nullable: false
        button_label:
          type: string
          nullable: false
      required:
      - subject
      - title
      - body
    EmailTemplateVariablesList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/EmailTemplateVariable'
      additionalProperties: false
    PatchPortalEmailConfig:
      type: object
      properties:
        domain_name:
          description: The domain name to use for sending emails. Null means default.
          type: string
          nullable: true
        from_name:
          description: The name to display in the 'From' field of emails.
          type: string
          nullable: true
        from_email:
          description: The email address to use in the 'From' field.
          type: string
          format: email
          nullable: true
        reply_to_email:
          description: The email address to use in the 'Reply-To' field. If set to null, 'Reply-To' header is omitted.
          type: string
          format: email
          nullable: true
      additionalProperties: false
    PaginatedMeta:
      description: returns the pagination information
      type: object
      properties:
        page:
          $ref: '#/components/schemas/PageMeta'
      required:
      - page
      title: PaginatedMeta
      x-speakeasy-terraform-ignore: true
    EmailVerificationStatus:
      description: Specifies the status of the mail domain verification
      type: string
      enum:
      - pending
      - success
      - failed
      - temporary_failure
      - not_started
      readOnly: true
      x-speakeasy-unknown-values: allow
    EmailTemplateVariableName:
      description: 'Enum for available portal email template variables.

        '
      type: string
      enum:
      - portal_display_name
      - portal_domain
      - developer_email
      - developer_fullname
      - dev_portal_reply_to
      - developer_status
      - api_documentation_url
      - api_name
      - api_version
      - application_name
      - credential_name
      - credential_expires_at
      x-speakeasy-unknown-values: allow
    NotFoundError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        properties:
          status:
            example: 404
          title:
            example: Not Found
          type:
            example: https://httpstatuses.com/404
          instance:
            example: kong:trace:1234567890
          detail:
            example: Not found
    UnauthorizedError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        properties:
          status:
            example: 401
          title:
            example: Unauthorized
          type:
            example: https://httpstatuses.com/401
          instance:
            example: kong:trace:1234567890
          detail:
            example: Invalid credentials
    SendTestEmailTemplateContent:
      type: object
      properties:
        subject:
          type: string
          maxLength: 1024
          nullable: false
        title:
          type: string
          maxLength: 1024
          nullable: false
        body:
          type: string
          maxLength: 4096
          nullable: false
        button_label:
          type: string
          maxLength: 128
          nullable: false
      required:
      - subject
      - title
      - body
    DefaultEmailTemplate:
      type: object
      properties:
        default_content:
          $ref: '#/components/schemas/DefaultEmailTemplateContent'
        variables:
          type: array
          items:
            $ref: '#/components/schemas/EmailTemplateVariableName'
        name:
          $ref: '#/components/schemas/EmailTemplateName'
        label:
          description: The label of the email template
          type: string
          example: Confirm email Address
      additionalProperties: false
      required:
      - default_content
      - variables
      - name
      - label
    EmailTemplateVariable:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/EmailTemplateVariableName'
        description:
          type: string
        scope:
          type: array
          items:
            $ref: '#/components/schemas/EmailTemplateName'
        example:
          description: Example value of the email template variable
          type: string
          example: My Company Portal
      required:
      - name
      - description
      - scope
      - example
    InvalidParameterMaximumLength:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
          - max_length
          - max_items
          - max
          nullable: false
          readOnly: true
          x-speakeasy-unknown-values: allow
        maximum:
          type: integer
          example: 8
        source:
          type: string
          example: body
        reason:
          type: string
          example: must not have more than 8 characters
          readOnly: true
      additionalProperties: false
      required:
      - field
      - reason
      - rule
      - maximum
    PageMeta:
      description: Contains pagination query parameters and the total number of objects returned.
      type: object
      properties:
        number:
          type: number
          example: 1
          x-speakeasy-terraform-ignore: true
        size:
          type: number
          example: 10
          x-speakeasy-terraform-ignore: true
        total:
          type: number
          example: 100
          x-speakeasy-terraform-ignore: true
      required:
      - number
      - size
      - total
    EmailDeliveryUpdatePayload:
      type: object
      properties:
        enabled:
          type: boolean
        from_email:
          type: string
          format: email
          nullable: true
        reply_to_email:
          type: string
          format: email
          nullable: true
      additionalProperties: false
    PortalEmailConfig:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7
          readOnly: true
        domain_name:
          description: The domain name used for sending emails. Null means default.
          type: string
          nullable: true
        from_name:
          description: The name displayed in the 'From' field of emails.
          type: string
          nullable: true
        from_email:
          description: The email address used in the 'From' field.
          type: string
          format: email
          nullable: true
        reply_to_email:
          description: The email address used in the 'Reply-To' field. 'Reply-To' header is omitted when null.
          type: string
          format: email
          nullable: true
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
      additionalProperties: false
      required:
      - id
      - from_name
      - from_email
      - reply_to_email
      - created_at
      - updated_at
    InvalidParameterStandard:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          $ref: '#/components/schemas/InvalidRules'
        source:
          type: string
          example: body
        reason:
          type: string
          example: is a required field
          readOnly: true
      additionalProperties: false
      required:
      - field
      - reason
    EmailDomainVerification:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/EmailVerificationStatus'
        last_time_checked:
          description: An ISO-8601 timestamp representation of the last time the verification got checked.
          type: string
          format: date-time
          example: '2022-11-04T20:10:06.927Z'
          readOnly: true
        last_time_success:
          description: An ISO-8601 timestamp representation of the last time the verification succeeded.
          type: string
          format: date-time
          example: '2022-11-04T20:10:06.927Z'
          readOnly: true
      additionalProperties: false
      readOnly: true
      required:
      - status
      - last_time_checked
      - last_time_success
    EmailTemplateName:
      description: 'Short name email template name.

        '
      type: string
      enum:
      - confirm-email-address
      - app-registration-approved
      - app-registration-rejected
      - app-registration-revoked
      - reset-password
      - account-access-approved
      - account-access-rejected
      - account-access-revoked
      - api-key-expiring-soon
      - api-key-expired
      - developer-invitation
      x-speakeasy-unknown-values: allow
    InvalidParameterChoiceItem:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
          - enum
          nullable: false
          readOnly: true
        reason:
          type: string
          example: is a required field
          readOnly: true
        choices:
          type: array
          items: {}
          minItems: 1
          nullable: false
          readOnly: true
          uniqueItems: true
        source:
          type: string
          example: body
      additionalProperties: false
      required:
      - field
      - reason
      - rule
      - choices
    EmailDelivery:
      type: object
      properties:
        enabled:
          type: boolean
        from_email:
          type: string
          format: email
          nullable: true
        reply_to_email:
          type: string
          format: email
          nullable: true
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
      additionalProperties: false
      required:
      - enabled
      - from_email
      - reply_to_email
      - created_at
      - updated_at
    InvalidParameters:
      description: invalid parameters
      type: array
      items:
        oneOf:
        - $ref: '#/components/schemas/InvalidParameterStandard'
        - $ref: '#/components/schemas/InvalidParameterMinimumLength'
        - $ref: '#/components/schemas/InvalidParameterMaximumLength'
        - $ref: '#/components/schemas/InvalidParameterChoiceItem'
        - $ref: '#/components/schemas/InvalidParameterDependentItem'
      minItems: 1
      nullable: false
      uniqueItems: true
    EmailDomainFilterParameters:
      type: object
      properties:
        domain:
          $ref: '#/components/schemas/StringFieldFilter'
        verification_status:
          $ref: '#/components/schemas/StringFieldFilter'
      title: EmailDomainFilterParameters
    EmailTemplate:
      type: object
      properties:
        label:
          description: The label of the email template
          type: string
          example: App registration approved
        name:
          $ref: '#/components/schemas/EmailTemplateName'
        default_content:
          $ref: '#/components/schemas/DefaultEmailTemplateContent'
        content:
          $ref: '#/components/schemas/EmailTemplateContent'
        variables:
          type: array
          items:
            $ref: '#/components/schemas/EmailTemplateVariableName'
        enabled:
          description: Whether the email template is enabled or disabled for a portal
          type: boolean
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
      required:
      - name
      - label
      - default_content
      - variables
      - enabled
      - created_at
      - updated_at
    DNSRecord:
      type: object
      properties:
        type:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        value:
          type: string
          readOnly: true
      additionalProperties: false
      required:
      - type
      - name
      - value
    ConflictError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        properties:
          status:
            example: 409
          title:
            example: Conflict
          type:
            example: https://httpstatuses.com/409
          instance:
            example: kong:trace:1234567890
          detail:
            example: Conflict
    ForbiddenError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        properties:
          status:
            example: 403
          title:
            example: Forbidden
          type:
            example: https://httpstatuses.com/403
          instance:
            example: kong:trace:1234567890
          detail:
            example: Forbidden
    EmailDomain:
      type: object
      properties:
        domain:
          type: string
        verification:
          $ref: '#/components/schemas/EmailDomainVerification'
        dns_validation_records:
          type: array
          items:
            $ref: '#/components/schemas/DNSRecord'
     

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kong/refs/heads/main/openapi/kong-portal-emails-api-openapi.yml