Kong App Auth Strategies API

Application Auth Strategies are sets of plugin configurations that represent how the gateway will perform authentication and authorization for a Product Version. Called “Auth Strategy” for short in the context of portals/applications. The plugins are synced to any Gateway Service that is currently linked or becomes linked to the Product Version.

OpenAPI Specification

kong-app-auth-strategies-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: support@konghq.com
    name: Kong Inc
    url: https://konghq.com
  description: 'OpenAPI 3.0 spec for Kong Gateway''s Admin API.


    You can learn more about Kong Gateway at [developer.konghq.com](https://developer.konghq.com).

    Give Kong a star at the [Kong/kong](https://github.com/kong/kong) repository.'
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: Kong Enterprise Admin ACLs App Auth Strategies API
  version: 3.14.0
servers:
- description: Default Admin API URL
  url: '{protocol}://{hostname}:{port}{path}'
  variables:
    hostname:
      default: localhost
      description: Hostname for Kong's Admin API
    path:
      default: /
      description: Base path for Kong's Admin API
    port:
      default: '8001'
      description: Port for Kong's Admin API
    protocol:
      default: http
      description: Protocol for requests to Kong's Admin API
      enum:
      - http
      - https
security:
- adminToken: []
tags:
- name: App Auth Strategies
  description: "Application Auth Strategies are sets of plugin configurations that represent how the gateway will perform authentication and authorization for a Product Version. \nCalled “Auth Strategy” for short in the context of portals/applications. \nThe plugins are synced to any Gateway Service that is currently linked or becomes linked to the Product Version.\n"
paths:
  /v2/application-auth-strategies:
    post:
      x-speakeasy-entity-operation:
        terraform-resource: ApplicationAuthStrategy#create
        terraform-datasource: null
      operationId: create-app-auth-strategy
      summary: Create App Auth Strategy
      description: Creates an application auth strategy.
      requestBody:
        $ref: '#/components/requestBodies/CreateAppAuthStrategy'
      responses:
        '201':
          $ref: '#/components/responses/CreateAppAuthStrategy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - App Auth Strategies
    get:
      operationId: list-app-auth-strategies
      summary: List App Auth Strategies
      description: Returns a paginated collection of application auth strategies.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/SortAppAuthStrategies'
      - name: filter
        in: query
        description: Filter application auth strategies returned in the response.
        required: false
        schema:
          type: object
          properties:
            strategy_type:
              $ref: '#/components/schemas/StringFieldFilter'
            name:
              $ref: '#/components/schemas/StringFieldFilter'
            display_name:
              $ref: '#/components/schemas/StringFieldFilter'
            dcr_provider_id:
              $ref: '#/components/schemas/UuidFieldFilter'
            dcr_provider_name:
              $ref: '#/components/schemas/StringFieldFilter'
            dcr_provider_type:
              $ref: '#/components/schemas/StringFieldFilter'
        style: deepObject
      responses:
        '200':
          $ref: '#/components/responses/ListAppAuthStrategies'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - App Auth Strategies
  /v2/application-auth-strategies/{authStrategyId}:
    parameters:
    - $ref: '#/components/parameters/AuthStrategyId'
    get:
      x-speakeasy-entity-operation:
        terraform-resource: ApplicationAuthStrategy#read
        terraform-datasource: null
      operationId: get-app-auth-strategy
      summary: Get App Auth Strategy
      description: Returns an application auth strategy.
      responses:
        '200':
          $ref: '#/components/responses/GetAppAuthStrategy'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - App Auth Strategies
    put:
      operationId: replace-app-auth-strategy
      summary: Replace App Auth Strategy
      description: Replaces an application auth strategy.
      requestBody:
        $ref: '#/components/requestBodies/CreateAppAuthStrategy'
      responses:
        '201':
          $ref: '#/components/responses/CreateAppAuthStrategy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - App Auth Strategies
    patch:
      x-speakeasy-entity-operation:
        terraform-resource: ApplicationAuthStrategy#update
        terraform-datasource: null
      operationId: update-app-auth-strategy
      summary: Update App Auth Strategy
      description: Updates an application auth strategy.
      requestBody:
        $ref: '#/components/requestBodies/UpdateAppAuthStrategy'
      responses:
        '200':
          $ref: '#/components/responses/UpdateAppAuthStrategy'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - App Auth Strategies
    delete:
      x-speakeasy-entity-operation:
        terraform-resource: ApplicationAuthStrategy#delete
        terraform-datasource: null
      operationId: delete-app-auth-strategy
      summary: Delete App Auth Strategy
      description: Deletes an application auth strategy. An application auth strategy can be deleted ONLY if it's not used by any product version within any portal regardless of their publication statuses. If an application auth strategy is still in use the request will result in an HTTP 409 CONFLICT.
      responses:
        '204':
          description: No Content.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
      tags:
      - App Auth Strategies
components:
  schemas:
    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
    UpdateAppAuthStrategyRequest:
      x-speakeasy-entity: ApplicationAuthStrategy
      description: Request body for updating an Application Auth Strategy
      type: object
      properties:
        name:
          $ref: '#/components/schemas/AuthStrategyName'
        display_name:
          $ref: '#/components/schemas/AuthStrategyDisplayName'
        labels:
          $ref: '#/components/schemas/LabelsUpdate'
        dcr_provider_id:
          type: string
          format: uuid
          nullable: true
        configs:
          description: JSON-B object containing the configuration for the OIDC strategy under the key 'openid-connect' or the configuration for the Key Auth strategy under the key 'key-auth'
          type: object
          oneOf:
          - $ref: '#/components/schemas/UpdateAppAuthStrategyRequestOpenIdConnect'
          - $ref: '#/components/schemas/UpdateAppAuthStrategyRequestKeyAuth'
      additionalProperties: false
      title: UpdateAppAuthStrategyRequest
    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
    AuthStrategyName:
      description: 'The name of the auth strategy. This is used to identify the auth strategy in the Konnect UI.

        '
      type: string
      maxLength: 256
      minLength: 1
    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
    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
    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
    AppAuthStrategyKeyAuthRequest:
      description: Request for creating a Key Auth Application Auth Strategy
      type: object
      properties:
        name:
          $ref: '#/components/schemas/AuthStrategyName'
        display_name:
          $ref: '#/components/schemas/AuthStrategyDisplayName'
        strategy_type:
          type: string
          enum:
          - key_auth
        configs:
          description: JSON-B object containing the configuration for the Key Auth strategy
          type: object
          additionalProperties: false
          properties:
            key-auth:
              $ref: '#/components/schemas/AppAuthStrategyConfigKeyAuth'
          required:
          - key-auth
        labels:
          $ref: '#/components/schemas/Labels'
      additionalProperties: false
      required:
      - name
      - display_name
      - strategy_type
      - configs
      title: AppAuthStrategyKeyAuthRequest
    AppAuthStrategyConfigKeyAuth:
      description: "The most basic mode to configure an Application Auth Strategy for an API Product Version. \nUsing this mode will allow developers to generate API keys that will authenticate their application requests. \nOnce authenticated, an application will be granted access to any Product Version it is registered for that is configured for Key Auth.\n"
      type: object
      properties:
        key_names:
          description: The names of the headers containing the API key. You can specify multiple header names.
          type: array
          items:
            type: string
            maxLength: 256
          maxItems: 10
          minItems: 1
        ttl:
          description: Default maximum Time-To-Live for keys created under this strategy.
          type: object
          properties:
            value:
              type: integer
              minimum: 1
            unit:
              type: string
              enum:
              - days
              - weeks
              - years
              x-speakeasy-unknown-values: allow
          required:
          - value
          - unit
      additionalProperties: false
      title: AppAuthStrategyConfigKeyAuth
    ListAppAuthStrategiesResponse:
      description: A paginated list response for a collection of Application Auth Strategies
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AppAuthStrategy'
        meta:
          $ref: '#/components/schemas/PaginatedMeta'
      additionalProperties: false
      required:
      - data
      - meta
      title: ListAppAuthStrategiesResponse
    UuidFieldFilter:
      description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`'
      type: object
      properties:
        eq:
          description: The field exactly matches the provided value.
          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
    AuthStrategyDisplayName:
      description: 'The display name of the Auth strategy. This is used to identify the Auth strategy in the Portal UI.

        '
      type: string
      maxLength: 256
    UUID:
      description: Contains a unique identifier used for this resource.
      type: string
      format: uuid
      example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7
      readOnly: true
    AppAuthStrategy:
      x-speakeasy-entity: ApplicationAuthStrategy
      description: A set of plugin configurations that represent how the gateway will perform authentication and authorization for a Product Version. Called “Auth Strategy” for short in the context of portals/applications. The plugins are synced to any Gateway Service that is currently linked or becomes linked to the Product Version.
      type: object
      discriminator:
        propertyName: strategy_type
        mapping:
          key_auth: '#/components/schemas/AppAuthStrategyKeyAuthResponse'
          openid_connect: '#/components/schemas/AppAuthStrategyOpenIDConnectResponse'
      oneOf:
      - $ref: '#/components/schemas/AppAuthStrategyKeyAuthResponse'
      - $ref: '#/components/schemas/AppAuthStrategyOpenIDConnectResponse'
      required:
      - strategy_type
      title: AppAuthStrategy
    PartialAppAuthStrategyConfigKeyAuth:
      description: 'Key Auth configuration for updating an Application Auth Strategy.

        The ttl field can be set to null to unset the Time-To-Live.

        '
      type: object
      properties:
        key_names:
          description: The names of the headers containing the API key. You can specify multiple header names.
          type: array
          items:
            type: string
            maxLength: 256
          maxItems: 10
          minItems: 1
        ttl:
          description: Default maximum Time-To-Live for keys created under this strategy. Set to null to unset.
          type: object
          nullable: true
          properties:
            value:
              type: integer
              minimum: 1
            unit:
              type: string
              enum:
              - days
              - weeks
              - years
              x-speakeasy-unknown-values: allow
          required:
          - value
          - unit
      additionalProperties: false
      title: PartialAppAuthStrategyConfigKeyAuth
    Labels:
      description: "Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. \n\nKeys must be of length 1-63 characters, and cannot start with \"kong\", \"konnect\", \"mesh\", \"kic\", or \"_\".\n"
      type: object
      example:
        env: test
      additionalProperties:
        type: string
        pattern: ^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$
        minLength: 1
        maxLength: 63
      maxProperties: 50
      title: Labels
    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
    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
    PartialAppAuthStrategyConfigOpenIDConnect:
      description: "A more advanced mode to configure an API Product Version’s Application Auth Strategy. \nUsing this mode will allow developers to use API credentials issued from an external IdP that will authenticate their application requests. \nOnce authenticated, an application will be granted access to any Product Version it is registered for that is configured for the same Auth Strategy. \nAn OIDC strategy may be used in conjunction with a DCR provider to automatically create the IdP application.\n"
      type: object
      properties:
        issuer:
          type: string
          format: url
          maxLength: 256
        credential_claim:
          type: array
          items:
            type: string
            maxLength: 128
          maxItems: 10
        scopes:
          type: array
          items:
            type: string
            maxLength: 128
          maxItems: 50
        auth_methods:
          type: array
          items:
            type: string
            maxLength: 64
          maxItems: 10
      additionalProperties: true
      title: PartialAppAuthStrategyConfigOpenIDConnect
    LabelsUpdate:
      description: "Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. \n\nLabels are intended to store **INTERNAL** metadata.\n\nKeys must be of length 1-63 characters, and cannot start with \"kong\", \"konnect\", \"mesh\", \"kic\", or \"_\".\n"
      type: object
      example:
        env: test
      additionalProperties:
        type: string
        pattern: ^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$
        minLength: 1
        maxLength: 63
        nullable: true
      maxProperties: 50
      nullable: true
      writeOnly: true
    PaginatedMeta:
      description: returns the pagination information
      type: object
      properties:
        page:
          $ref: '#/components/schemas/PageMeta'
      required:
      - page
      title: PaginatedMeta
      x-speakeasy-terraform-ignore: 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
    GetAppAuthStrategyResponse:
      $ref: '#/components/schemas/AppAuthStrategy'
    CreateAppAuthStrategyRequest:
      x-speakeasy-entity: ApplicationAuthStrategy
      description: Request body for creating an Application Auth Strategy
      type: object
      discriminator:
        propertyName: strategy_type
        mapping:
          key_auth: '#/components/schemas/AppAuthStrategyKeyAuthRequest'
          openid_connect: '#/components/schemas/AppAuthStrategyOpenIDConnectRequest'
      oneOf:
      - $ref: '#/components/schemas/AppAuthStrategyKeyAuthRequest'
      - $ref: '#/components/schemas/AppAuthStrategyOpenIDConnectRequest'
      required:
      - strategy_type
      title: CreateAppAuthStrategyRequest
    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
    DcrProviderDisplayName:
      description: 'The display name of the DCR provider. This is used to identify the DCR provider in the Portal UI.

        '
      type: string
      maxLength: 256
      minLength: 1
    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
    AppAuthStrategyKeyAuthResponse:
      description: Response payload from creating or updating a Key Auth Application Auth Strategy
      type: object
      properties:
        id:
          $ref: '#/components/schemas/UUID'
        name:
          $ref: '#/components/schemas/AuthStrategyName'
        display_name:
          $ref: '#/components/schemas/AuthStrategyDisplayName'
        strategy_type:
          type: string
          enum:
          - key_auth
        configs:
          description: JSON-B object containing the configuration for the Key Auth strategy
          type: object
          additionalProperties: false
          properties:
            key-auth:
              $ref: '#/components/schemas/AppAuthStrategyConfigKeyAuth'
          required:
          - key-auth
        active:
          description: At least one published entity is using this auth strategy.
          type: boolean
        dcr_provider:
          type: object
          additionalProperties: false
          nullable: true
          properties:
            id:
              $ref: '#/components/schemas/UUID'
            name:
              type: string
            display_name:
              $ref: '#/components/schemas/DcrProviderDisplayName'
            provider_type:
              description: The type of DCR provider.
              type: string
              enum:
              - auth0
              - azureAd
              - curity
              - okta
              - http
              x-speakeasy-unknown-values: allow
          required:
          - id
          - name
          - provider_type
        labels:
          $ref: '#/components/schemas/Labels'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        supports_multiple_credentials:
          description: 'Indicates whether this auth strategy supports multiple credentials.

            Always `true` for KEY_AUTH.

            '
          type: boolean
          default: true
          readOnly: true
      additionalProperties: false
      required:
      - id
      - name
      - display_name
      - strategy_type
      - configs
      - active
      - dcr_provider
      - labels
      - created_at
      - updated_at
      title: AppAuthStrategyKeyAuthResponse
    InvalidParameterDependentItem:
      type: object
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          enum:
          - dependent_fields
          nullable: true
          readOnly: true
        reason:
          type: string
          example: is a required field
          readOnly: true
        dependents:
          type: array
          items: {}
          nullable: true
          readOnly: true
          uniqueItems: true
        source:
          type: string
          example: body
      additionalProperties: false
      required:
      - field
      - rule
      - reason
      - dependents
    InvalidRules:
      description: invalid parameters rules
      type: string
      enum:
      - required
      - is_array
      - is_base64
      - is_boolean
      - is_date_time
      - is_integer
      - is_null
      - is_number
      - is_object
      - is_string
      - is_uuid
      - is_fqdn
      - is_arn
      - unknown_property
      - missing_reference
      - is_label
      - matches_regex
      - invalid
      - is_supported_network_availability_zone_list
      - is_supported_network_cidr_block
      - is_supported_provider_region
      - type
      nullable: true
      readOnly: true
      x-speakeasy-unknown-values: allow
    UpdateAppAuthStrategyRequestOpenIdConnect:
      type: object
      properties:
        openid-connect:
          $ref: '#/components/schemas/PartialAppAuthStrategyConfigOpenIDConnect'
      additionalProperties: false
      required:
      - openid-connect
    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
    BadRequestError:
      allOf:
      - $ref: '#/components/schemas/BaseError'
      - type: object
        required:
        - invalid_parameters
        properties:
          invalid_parameters:
            $ref: '#/components/schemas/InvalidParameters'
    UpdateAppAuthStrategyRequestKeyAuth:
      type: object
      properties:
        key-auth:
          $ref: '#/components/schemas/PartialAppAuthStrategyConfigKeyAuth'
      additionalProperties: false
      required:
      - key-auth
    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
    CreateAppAuthStrategyResponse:
      $ref: '#/components/schemas/AppAuthStrategy'
    UpdateAppAuthStrategyResponse:
      $ref: '#/components/schemas/AppAuthStrategy'
    AppAuthStrategyOpenIDConnectRequest:
      description: Payload for creating an OIDC Application Auth Strategy
      type: object
      properties:
        name:
          $ref: '#/components/schemas/AuthStrategyName'
        display_name:
          $ref: '#/components/schemas/AuthStrategyDisplayName'
        strategy_type:
          type: string
          enum:
          - openid_connect
        configs:
          description: JSON-B object containing the configuration for the OIDC strategy
          type: object
          additionalProperties: false
          properties:
            openid-connect:
              $ref: '#/components/schemas/AppAuthStrategyConfigOpenIDConnect'
          required:
          - openid-connect
        dcr_provider_id:
          type: string
          format: uuid
          nullable: true
        labels:
          $ref: '#/components/schemas/Labels'
      additionalProperties: false
      required:
      - name
      - display_name
      - strategy_type
      - configs
      title: AppAuthStrategyOpenIDConnectRequest
    AppAuthStrategyOpenIDConnectResponse:
      description: Response payload from creating an OIDC Application Auth Strategy
      type: object
      properties:
        id:
          $ref: '#/components/schemas/UUID'
        name:
          $ref: '#/components/schemas/AuthStrategyName'
        display_name:
          $ref: '#/components/schemas/AuthStrategyDisplayName'
        strategy_type:
          type: string
          enum:
          - openid_connect
        configs:
          description: JSON-B object containing the configuration for the OIDC strategy
          type: object
          additionalProperties: false
          properties:
            openid-connect:
              $ref: '#/components/schemas/AppAuthStrategyConfigOpenIDConnect'
          required:
          - openid-connect
        active:
          description: At least one published entity is using this auth strategy.
          type: boolean
        dcr_provider:
          type: object
          additionalProperties: false
          nullable: true
          properties:
            id:
              $ref: '#/components/schemas/UUID'
            name:
              type: string
            display_name:
              $ref: '#/components/schemas/DcrProviderDisplayName'
            provider_type:
              description: The type of DCR provider.
              type: string
              enum:
              - auth0
              - azureAd
              - curity
              - okta
              - http
              x-speakeasy-unknown-values: allow
          required:
          - id
          - name
          - provider_type
        labels:
          $ref: '#/components/schemas/Labels'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        supports_multiple_credentials:
          description: 'Indicates whether this auth strategy supports multiple credentials.

            - `true` for Key Auth strategies and when supported for Client Credentials strategies

            - `false` when not supported for Client Credentials strategies

            '
          type: boolean
          readOnly: true
      additionalProperties: false
      required:
      - id
      - name
      - display_name
      - strategy_type
      - configs
      - active
      - dcr_provider
      - labels
      - created_at
      - updated_at
      title: AppAuthStrategyOpenIDConnectResponse
    AppAuthStrategyConfigOpenIDConnect:
      description: "A more advanced mode to configure an API Product Version’s Application Auth Strategy. \nUsing this mode will allow developers to use API credentials issued from an external IdP that will authenticate their application requests. \nOnce authenticated, an application will be g

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kong/refs/heads/main/openapi/kong-app-auth-strategies-api-openapi.yml