Kong Scorecards API

A scorecard helps you evaluate services based on its criteria. Scorecards help you detect issues, like whether there are services in the catalog that don't have an on-call engineer assigned, or if you have GitHub repositories with stale pull requests that aren't getting reviewed or closed. From the scorecard, you can view details on either a per-service or per-criteria basis. Learn more about scorecards by visiting our [documentation](https://developer.konghq.com/service-catalog/scorecards/).

Operations 11

GET /v1/catalog-services/{id}/scorecards List Catalog Service Scorecards #
GET /v1/catalog-services/{serviceId}/scorecards/{scorecardId} Get a Catalog Service Scorecard #
GET /v1/scorecard-templates List Scorecard Templates #
POST /v1/scorecards Create Scorecard #
GET /v1/scorecards List Scorecards #
GET /v1/scorecards/{id} Get a Scorecard #
PUT /v1/scorecards/{id} Update Scorecard #
DELETE /v1/scorecards/{id} Delete Scorecard #
GET /v1/scorecards/{id}/catalog-services List Scorecard Services #
GET /v1/scorecards/{id}/criteria List Scorecard Criteria #
GET /v1/scorecards/{scorecardId}/criteria/{criteriaId}/catalog-services List Scorecard Criteria Services #

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-scorecards-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-scorecards-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Konnect API - Go SDK Scorecards 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: Scorecards
  description: 'A scorecard helps you evaluate services based on its criteria.

    Scorecards help you detect issues, like whether there are services in the catalog that don''t have an on-call engineer assigned, or if you have GitHub repositories with stale pull requests that aren''t getting reviewed or closed.

    From the scorecard, you can view details on either a per-service or per-criteria basis.

    Learn more about scorecards by visiting our [documentation](https://developer.konghq.com/service-catalog/scorecards/).

    '
paths:
  /v1/catalog-services/{id}/scorecards:
    parameters:
    - name: id
      in: path
      description: The `id` of the service.
      required: true
      schema:
        type: string
        example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7
    get:
      operationId: list-catalog-service-scorecards
      summary: List Catalog Service Scorecards
      description: Returns a paginated collection of scorecards targeting the given service.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/ScorecardFilter'
      - $ref: '#/components/parameters/ScorecardSort'
      responses:
        '200':
          $ref: '#/components/responses/ListCatalogServiceScorecardsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
  /v1/catalog-services/{serviceId}/scorecards/{scorecardId}:
    parameters:
    - name: serviceId
      in: path
      description: The `id` of the service.
      required: true
      schema:
        type: string
        example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7
    - name: scorecardId
      in: path
      description: The `id` of the scorecard.
      required: true
      schema:
        type: string
        format: uuid
        example: f3704e4c-104d-4f21-998a-20d4364c893f
    get:
      operationId: fetch-catalog-service-scorecard
      summary: Get a Catalog Service Scorecard
      description: Fetches the given scorecard targeting the service.
      responses:
        '200':
          $ref: '#/components/responses/CatalogServiceScorecardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
  /v1/scorecard-templates:
    get:
      operationId: list-scorecard-templates
      summary: List Scorecard Templates
      description: Returns a paginated collection of scorecard templates.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/ScorecardTemplateFilter'
      - $ref: '#/components/parameters/ScorecardTemplateSort'
      responses:
        '200':
          $ref: '#/components/responses/ListScorecardTemplatesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Scorecards
  /v1/scorecards:
    post:
      operationId: create-scorecard
      summary: Create Scorecard
      description: Creates a scorecard.
      requestBody:
        $ref: '#/components/requestBodies/CreateScorecardRequest'
      responses:
        '201':
          $ref: '#/components/responses/ScorecardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Scorecards
    get:
      operationId: list-scorecards
      summary: List Scorecards
      description: Returns a paginated collection of scorecards.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/ScorecardFilter'
      - $ref: '#/components/parameters/ScorecardSort'
      responses:
        '200':
          $ref: '#/components/responses/ListScorecardsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      tags:
      - Scorecards
  /v1/scorecards/{id}:
    parameters:
    - name: id
      in: path
      description: The `id` of the scorecard.
      required: true
      schema:
        type: string
        format: uuid
        example: f3704e4c-104d-4f21-998a-20d4364c893f
    get:
      operationId: fetch-scorecard
      summary: Get a Scorecard
      description: Fetches a scorecard.
      responses:
        '200':
          $ref: '#/components/responses/ScorecardResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
    put:
      operationId: update-scorecard
      summary: Update Scorecard
      description: Updates a scorecard.
      requestBody:
        $ref: '#/components/requestBodies/UpdateScorecardRequest'
      responses:
        '200':
          $ref: '#/components/responses/ScorecardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
    delete:
      operationId: delete-scorecard
      summary: Delete Scorecard
      description: Deletes a scorecard.
      responses:
        '204':
          description: Scorecard was deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
  /v1/scorecards/{id}/catalog-services:
    parameters:
    - name: id
      in: path
      description: The `id` of the scorecard.
      required: true
      schema:
        type: string
        format: uuid
        example: f3704e4c-104d-4f21-998a-20d4364c893f
    get:
      operationId: list-scorecard-services
      summary: List Scorecard Services
      description: Lists services targeted by a scorecard.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/ScorecardServiceFilter'
      - $ref: '#/components/parameters/ScorecardServiceSort'
      responses:
        '200':
          $ref: '#/components/responses/ListScorecardServicesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
  /v1/scorecards/{id}/criteria:
    parameters:
    - name: id
      in: path
      description: The `id` of the scorecard.
      required: true
      schema:
        type: string
        format: uuid
        example: f3704e4c-104d-4f21-998a-20d4364c893f
    get:
      operationId: list-scorecard-criteria
      summary: List Scorecard Criteria
      description: Lists criteria, including passing service counts, belonging to a scorecard.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/ScorecardCriteriaFilter'
      - $ref: '#/components/parameters/ScorecardCriteriaSort'
      responses:
        '200':
          $ref: '#/components/responses/ListScorecardCriteriaResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
  /v1/scorecards/{scorecardId}/criteria/{criteriaId}/catalog-services:
    parameters:
    - name: scorecardId
      in: path
      description: The `id` of the scorecard.
      required: true
      schema:
        type: string
        format: uuid
        example: f3704e4c-104d-4f21-998a-20d4364c893f
    - name: criteriaId
      in: path
      description: The `id` of the criteria.
      required: true
      schema:
        type: string
        format: uuid
        example: 5c1121f9-3f3a-47c7-9bb6-c81a51128714
    get:
      operationId: list-scorecard-criteria-services
      summary: List Scorecard Criteria Services
      description: Lists services targeted by a scorecard criteria with evaluation results per-service.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/ScorecardCriteriaServiceFilter'
      - $ref: '#/components/parameters/ScorecardCriteriaServiceSort'
      responses:
        '200':
          $ref: '#/components/responses/ListScorecardCriteriaServicesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      tags:
      - Scorecards
components:
  schemas:
    CatalogServiceScorecard:
      description: Representation of a scorecard.
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: f3704e4c-104d-4f21-998a-20d4364c893f
        name:
          description: The human-readable name of the scorecard.
          type: string
          example: Incident Response
        description:
          type: string
          example: Governs key metrics pertaining to teams' incident response practices.
          nullable: true
        score:
          $ref: '#/components/schemas/ScorecardScore'
        entity_selector:
          $ref: '#/components/schemas/ScorecardEntitySelector'
        scorecard_template:
          description: 'The name of the scorecard template used to create the scorecard.

            Otherwise, `null`.

            '
          type: string
          example: kong_best_practices
          enum:
          - kong_best_practices
          - service_documentation
          - service_maturity
          - security_and_compliance
          nullable: true
          x-speakeasy-unknown-values: allow
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        criteria:
          type: array
          items:
            $ref: '#/components/schemas/CatalogServiceScorecardCriteria'
      required:
      - id
      - name
      - description
      - score
      - entity_selector
      - scorecard_template
      - created_at
      - updated_at
      - criteria
    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
    ScorecardCriteriaServiceFilterParameters:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/UuidFieldFilter'
        name:
          $ref: '#/components/schemas/StringFieldFilter'
        display_name:
          $ref: '#/components/schemas/StringFieldFilter'
        custom_fields:
          description: "Filter by custom fields using dot-notation to specify the custom field.\nFilter operators are dictated by the custom field type. For example:\n\n\n  - `filter[custom_fields.owner]`\n  - `filter[custom_fields.owner][neq]=kong`\n  - `filter[custom_fields.dashboard.link][contains]=https`\n"
          oneOf:
          - $ref: '#/components/schemas/StringFieldFilter'
          - $ref: '#/components/schemas/BooleanFieldFilter'
          - $ref: '#/components/schemas/NumericFieldFilter'
        labels:
          $ref: '#/components/schemas/LabelsFieldFilter'
        created_at:
          $ref: '#/components/schemas/DateTimeFieldFilter'
        updated_at:
          $ref: '#/components/schemas/DateTimeFieldFilter'
        evaluation.is_passing:
          oneOf:
          - $ref: '#/components/schemas/BooleanFieldFilter'
        evaluation.successfully_evaluated_at:
          description: Filters on the given datetime (RFC-3339) field value.
          oneOf:
          - type: object
            title: DateTimeFieldEqualsFilter
            additionalProperties: false
            properties:
              eq:
                description: Value strictly equals given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - eq
          - type: object
            title: DateTimeFieldLTFilter
            additionalProperties: false
            properties:
              lt:
                description: Value is less than the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - lt
          - type: object
            title: DateTimeFieldLTEFilter
            additionalProperties: false
            properties:
              lte:
                description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - lte
          - type: object
            title: DateTimeFieldGTFilter
            additionalProperties: false
            properties:
              gt:
                description: Value is greater than the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - gt
          - type: object
            title: DateTimeFieldGTEFilter
            additionalProperties: false
            properties:
              gte:
                description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - gte
          title: DateTimeFieldFilter
        evaluation.attempted_at:
          description: Filters on the given datetime (RFC-3339) field value.
          oneOf:
          - type: object
            title: DateTimeFieldEqualsFilter
            additionalProperties: false
            properties:
              eq:
                description: Value strictly equals given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - eq
          - type: object
            title: DateTimeFieldLTFilter
            additionalProperties: false
            properties:
              lt:
                description: Value is less than the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - lt
          - type: object
            title: DateTimeFieldLTEFilter
            additionalProperties: false
            properties:
              lte:
                description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - lte
          - type: object
            title: DateTimeFieldGTFilter
            additionalProperties: false
            properties:
              gt:
                description: Value is greater than the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - gt
          - type: object
            title: DateTimeFieldGTEFilter
            additionalProperties: false
            properties:
              gte:
                description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC
                type: string
                format: date-time
                example: '2022-03-30T07:20:50Z'
            required:
            - gte
          title: DateTimeFieldFilter
    StringSelectorOperator:
      type: string
      enum:
      - eq
      - contains
      x-speakeasy-unknown-values: allow
    ScorecardCriteriaServiceEvaluation:
      description: 'Evaluation for a scorecard criteria relative to the given service service.

        Has a `null` value when the criteria has not yet been evaluated for the service.

        '
      type: object
      properties:
        is_passing:
          description: Whether or not the service has most recently passed the criteria check.
          type: boolean
        evaluation_context:
          $ref: '#/components/schemas/CriteriaEvaluationResultDetails'
        evaluation_error:
          description: 'Details about an error that occurred during evaluation preventing computation of a pass/fail result.

            Will be `null` when no error occurred.

            '
          type: object
          example: null
          nullable: true
          properties:
            type:
              description: The type of error that occurred.
              type: string
              example: integration_unauthorized
            details:
              description: Human-readable error message about the error.
              type: string
              example: 'The GitHub integration is unauthorized. Please ensure that the

                integration is re-authorized for the criteria to be successfully evaluated.

                '
          required:
          - type
          - details
        attempted_at:
          description: The timestamp denoting the last evaluation attempt of the criteria for the service.
          type: string
          format: date-time
          example: '2023-02-15T07:20:50Z'
        successfully_evaluated_at:
          description: 'The timestamp denoting when the criteria was last successfully evaluated for the service.

            Error states preventing the evaluation from being performed will not update this timestamp.

            '
          type: string
          format: date-time
          example: '2023-02-15T07:20:50Z'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
      nullable: true
      required:
      - is_passing
      - evaluation_context
      - evaluation_error
      - successfully_evaluated_at
      - attempted_at
      - created_at
    LabelsFieldFilter:
      allOf:
      - title: LabelsFieldFilter
        description: "Filters on the resource's `labels` field. Filters must use dot-notation to identify\nthe label key that will be used to filter the results. For example:\n\n\n  - `filter[labels.owner]`\n  - `filter[labels.owner][neq]=kong`\n  - `filter[labels.env]=dev`\n  - `filter[labels.env][ocontains]=dev,test`\n"
      - $ref: '#/components/schemas/StringFieldFilter'
    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
    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
    HasDocsSelector:
      description: Entity selector to include entities by attached documentation.
      type: object
      properties:
        selector:
          type: string
          enum:
          - has_docs
        selector_parameters:
          type: string
          enum:
          - null
          nullable: true
      required:
      - selector
      - selector_parameters
    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
    NumericCustomField:
      type: number
      nullable: true
    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
    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
    ScorecardWithCriteria:
      description: Representation of a scorecard.
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: f3704e4c-104d-4f21-998a-20d4364c893f
        name:
          description: The human-readable name of the scorecard.
          type: string
          example: Incident Response
        description:
          type: string
          example: Governs key metrics pertaining to teams' incident response practices.
          nullable: true
        score:
          $ref: '#/components/schemas/ScorecardScore'
        entity_selector:
          $ref: '#/components/schemas/ScorecardEntitySelector'
        scorecard_template:
          description: 'The name of the scorecard template used to create the scorecard.

            Otherwise, `null`.

            '
          type: string
          example: kong_best_practices
          enum:
          - kong_best_practices
          - service_documentation
          - service_maturity
          - security_and_compliance
          nullable: true
          x-speakeasy-unknown-values: allow
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        criteria:
          type: array
          items:
            $ref: '#/components/schemas/ScorecardCriteria'
      required:
      - id
      - name
      - description
      - score
      - entity_selector
      - scorecard_template
      - created_at
      - updated_at
      - criteria
    ScorecardEntitySelector:
      description: 'Selector used to dynamically target catalog entities that will be

        included in the given scorecard''s evaluated score.

        '
      type: object
      example:
        selector: label
        selector_parameters:
          label_key: product_area
          operator: eq
          value: cloud_platform
      nullable: true
      oneOf:
      - $ref: '#/components/schemas/ServiceSelector'
      title: ScorecardEntitySelector
    CriteriaTemplateName:
      description: Reference to the unique `name` of the criteria template.
      type: string
      example: time_to_merge
    ByDisplayNameSelector:
      description: Entity selector that includes entities by `display_name`.
      type: object
      properties:
        selector:
          type: string
          enum:
          - display_name
        selector_parameters:
          $ref: '#/components/schemas/StringFieldSelectorParams'
      required:
      - selector
      - selector_parameters
    Scorecard:
      description: Representation of a scorecard.
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: f3704e4c-104d-4f21-998a-20d4364c893f
        name:
          description: The human-readable name of the scorecard.
          type: string
          example: Incident Response
        description:
          type: string
          example: Governs key metrics pertaining to teams' incident response practices.
          nullable: true
        score:
          $ref: '#/components/schemas/ScorecardScore'
        entity_selector:
          $ref: '#/components/schemas/ScorecardEntitySelector'
        scorecard_template:
          description: 'The name of the scorecard template used to create the scorecard.

            Otherwise, `null`.

            '
          type: string
          example: kong_best_practices
          enum:
          - kong_best_practices
          - service_documentation
          - service_maturity
          - security_and_compliance
          nullable: true
          x-speakeasy-unknown-values: allow
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
      required:
      - id
      - name
      - description
      - score
      - entity_selector
      - scorecard_template
      - created_at
      - updated_at
    HasLabelKeySelector:
      description: Entity selector that includes entities by inclusion of a `label` key.
      type: object
      properties:
        selector:
          type: string
          enum:
          - has_label_key
        selector_parameters:
          type: object
          properties:
            label_key:
              type: string
          required:
          - label_key
          title: HasLabelKeySelectorParams
      required:
      - selector
      - selector_parameters
    ByCustomFieldSelector:
      description: Entity selector that include entities by a custom field.
      type: object
      properties:
        selector:
          type: string
          enum:
          - custom_field
        selector_parameters:
          oneOf:
          - type: object
            title: StringCustomFieldSelectorParams
            required:
            - field
            - value
            - operator
            properties:
              field:
                description: Name of the custom field.
                type: string
              value:
                type: string
              operator:
                $ref: '#/components/schemas/StringSelectorOperator'
          - type: object
            title: NumberCustomFieldSelectorParams
            required:
            - field
            - value
            - operator
            properties:
              field:
                description: Name of the custom field.
                type: string
              value:
                type: number
              operator:
                $ref: '#/components/schemas/NumberSelectorOperator'
          - type: object
            title: BooleanCustomFieldSelectorParams
            required:
            - field
            - value
            - operator
            properties:
              field:
                description: Name of the custom field.
                type: string
              value:
                type: boolean
              operator:
                $ref: '#/components/schemas/BooleanSelectorOperator'
          - type: object
            title: UrlCustomFieldSelectorParams
            required:
            - field
            - subfield
            - value
            - operator
            properties:
              field:
                description: Name of the custom field.
                type: string
              subfield:
                description: Specify which subfield of the `url` custom field value to use for selection.
                type: string
                enum:
                - name
                - link
                x-speakeasy-unknown-values: allow
              value:
                type: string
              operator:
                $ref: '#/components/schemas/StringSelectorOperator'
      required:
      - selector
      - selector_parameters
    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

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