Amazon Kendra Kendra Principal Mapping API

The Kendra Principal Mapping API from Amazon Kendra — 3 operation(s) for kendra principal mapping.

Operations 3

POST /#DeletePrincipalMapping Delete Principal Mapping #
POST /#DescribePrincipalMapping Describe Principal Mapping #
POST /#PutPrincipalMapping Put Principal Mapping #

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/amazon-kendra:amazon-kendra-principal-mapping-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

amazon-kendra-principal-mapping-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AWSKendraFrontendService Principal Mapping API
  version: '2019-02-03'
  description: Generated from AWS's published Smithy model for AWSKendraFrontendService. 3 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://kendra.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
tags:
- name: Principal Mapping
paths:
  /#DeletePrincipalMapping:
    post:
      operationId: DeletePrincipalMapping
      summary: Delete Principal Mapping
      description: Deletes a group so that all users that belong to the group can no longer access documents only available to that group. For example, after deleting the group "Summer Interns", all interns who belonged to that group no longer see intern-only documents in their search results. If you want to delete or replace users or sub groups of a group, you need to use the PutPrincipalMapping operation. For example, if a user in the group "Engineering" leaves the engineering team and another user takes their place, you provide an updated list of users or sub groups that belong to the "Engineering" group when calling PutPrincipalMapping. You can update your internal list of users or sub groups and input this list when calling PutPrincipalMapping. DeletePrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                type: string
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ValidationException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSKendraFrontendService.DeletePrincipalMapping
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DeletePrincipalMappingRequest'
      tags:
      - Principal Mapping
  /#DescribePrincipalMapping:
    post:
      operationId: DescribePrincipalMapping
      summary: Describe Principal Mapping
      description: Describes the processing of PUT and DELETE actions for mapping users to their groups. This includes information on the status of actions currently processing or yet to be processed, when actions were last updated, when actions were received by Amazon Kendra, the latest action that should process and apply after other actions, and useful error messages if an action could not be processed. DescribePrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DescribePrincipalMappingResponse'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ValidationException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSKendraFrontendService.DescribePrincipalMapping
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DescribePrincipalMappingRequest'
      tags:
      - Principal Mapping
  /#PutPrincipalMapping:
    post:
      operationId: PutPrincipalMapping
      summary: Put Principal Mapping
      description: Maps users to their groups so that you only need to provide the user ID when you issue the query. You can also map sub groups to groups. For example, the group "Company Intellectual Property Teams" includes sub groups "Research" and "Engineering". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their search results. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. For more information, see Filtering on user context. If more than five PUT actions for a group are currently processing, a validation exception is thrown.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                type: string
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ResourceNotFoundException'
        '402':
          description: ServiceQuotaExceededException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ServiceQuotaExceededException'
        '429':
          description: ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ValidationException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSKendraFrontendService.PutPrincipalMapping
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/PutPrincipalMappingRequest'
      tags:
      - Principal Mapping
components:
  schemas:
    PutPrincipalMappingRequest:
      type: object
      properties:
        IndexId:
          type: string
          description: The identifier of the index you want to map users to their groups.
        DataSourceId:
          type: string
          description: The identifier of the data source you want to map users to their groups. This is useful if a group is tied to multiple data sources, but you only want the group to access documents of a certain data source. For example, the groups "Research", "Engineering", and "Sales and Marketing" are all tied to the company's documents stored in the data sources Confluence and Salesforce. However, "Sales and Marketing" team only needs access to customer-related documents stored in Salesforce.
        GroupId:
          type: string
          description: The identifier of the group you want to map its users to.
        GroupMembers:
          $ref: '#/components/schemas/GroupMembers'
        OrderingId:
          type: integer
          description: 'The timestamp identifier you specify to ensure Amazon Kendra doesn''t override the latest PUT action with previous actions. The highest number ID, which is the ordering ID, is the latest action you want to process and apply on top of other actions with lower number IDs. This prevents previous actions with lower number IDs from possibly overriding the latest action. The ordering ID can be the Unix time of the last update you made to a group members list. You would then provide this list when calling PutPrincipalMapping. This ensures your PUT action for that updated group with the latest members '
        RoleArn:
          type: string
          description: The Amazon Resource Name (ARN) of an IAM role that has access to the S3 file that contains your list of users that belong to a group. For more information, see IAM roles for Amazon Kendra.
      required:
      - IndexId
      - GroupId
      - GroupMembers
    DeletePrincipalMappingRequest:
      type: object
      properties:
        IndexId:
          type: string
          description: The identifier of the index you want to delete a group from.
        DataSourceId:
          type: string
          description: The identifier of the data source you want to delete a group from. A group can be tied to multiple data sources. You can delete a group from accessing documents in a certain data source. For example, the groups "Research", "Engineering", and "Sales and Marketing" are all tied to the company's documents stored in the data sources Confluence and Salesforce. You want to delete "Research" and "Engineering" groups from Salesforce, so that these groups cannot access customer-related documents stored in Salesforce. Only "Sales and Marketing" should access documents in the Salesforce data source.
        GroupId:
          type: string
          description: The identifier of the group you want to delete.
        OrderingId:
          type: integer
          description: The timestamp identifier you specify to ensure Amazon Kendra does not override the latest DELETE action with previous actions. The highest number ID, which is the ordering ID, is the latest action you want to process and apply on top of other actions with lower number IDs. This prevents previous actions with lower number IDs from possibly overriding the latest action. The ordering ID can be the Unix time of the last update you made to a group members list. You would then provide this list when calling PutPrincipalMapping. This ensures your DELETE action for that updated group with the latest m
      required:
      - IndexId
      - GroupId
    MemberGroup:
      type: object
      properties:
        GroupId:
          type: string
          description: The identifier of the sub group you want to map to a group.
        DataSourceId:
          type: string
          description: The identifier of the data source for the sub group you want to map to a group.
      required:
      - GroupId
    ConflictException:
      type: object
      properties:
        Message:
          type: string
    DescribePrincipalMappingRequest:
      type: object
      properties:
        IndexId:
          type: string
          description: The identifier of the index required to check the processing of PUT and DELETE actions for mapping users to their groups.
        DataSourceId:
          type: string
          description: The identifier of the data source to check the processing of PUT and DELETE actions for mapping users to their groups.
        GroupId:
          type: string
          description: The identifier of the group required to check the processing of PUT and DELETE actions for mapping users to their groups.
      required:
      - IndexId
      - GroupId
    GroupMembers:
      type: object
      properties:
        MemberGroups:
          type: array
          items:
            $ref: '#/components/schemas/MemberGroup'
          description: A list of users that belong to a group. This can also include sub groups. For example, the sub groups "Research", "Engineering", and "Sales and Marketing" all belong to the group "Company A".
        MemberUsers:
          type: array
          items:
            $ref: '#/components/schemas/MemberUser'
          description: A list of users that belong to a group. For example, a list of interns all belong to the "Interns" group.
        S3PathforGroupMembers:
          $ref: '#/components/schemas/S3Path'
    ServiceQuotaExceededException:
      type: object
      properties:
        Message:
          type: string
    MemberUser:
      type: object
      properties:
        UserId:
          type: string
          description: The identifier of the user you want to map to a group.
      required:
      - UserId
    InternalServerException:
      type: object
      properties:
        Message:
          type: string
    DescribePrincipalMappingResponse:
      type: object
      properties:
        IndexId:
          type: string
          description: Shows the identifier of the index to see information on the processing of PUT and DELETE actions for mapping users to their groups.
        DataSourceId:
          type: string
          description: Shows the identifier of the data source to see information on the processing of PUT and DELETE actions for mapping users to their groups.
        GroupId:
          type: string
          description: Shows the identifier of the group to see information on the processing of PUT and DELETE actions for mapping users to their groups.
        GroupOrderingIdSummaries:
          type: array
          items:
            $ref: '#/components/schemas/GroupOrderingIdSummary'
          description: 'Shows the following information on the processing of PUT and DELETE actions for mapping users to their groups: Status—the status can be either PROCESSING, SUCCEEDED, DELETING, DELETED, or FAILED. Last updated—the last date-time an action was updated. Received—the last date-time an action was received or submitted. Ordering ID—the latest action that should process and apply after other actions. Failure reason—the reason an action could not be processed.'
    AccessDeniedException:
      type: object
      properties:
        Message:
          type: string
    ResourceNotFoundException:
      type: object
      properties:
        Message:
          type: string
    S3Path:
      type: object
      properties:
        Bucket:
          type: string
          description: The name of the S3 bucket that contains the file.
        Key:
          type: string
          description: The name of the file.
      required:
      - Bucket
      - Key
    ValidationException:
      type: object
      properties:
        Message:
          type: string
    ThrottlingException:
      type: object
      properties:
        Message:
          type: string
    GroupOrderingIdSummary:
      type: object
      properties:
        Status:
          type: string
          enum:
          - FAILED
          - SUCCEEDED
          - PROCESSING
          - DELETING
          - DELETED
          description: The current processing status of actions for mapping users to their groups. The status can be either PROCESSING, SUCCEEDED, DELETING, DELETED, or FAILED.
        LastUpdatedAt:
          type: string
          format: date-time
          description: The Unix timestamp when an action was last updated. An action can be a PUT or DELETE action for mapping users to their groups.
        ReceivedAt:
          type: string
          format: date-time
          description: The Unix timestamp when an action was received by Amazon Kendra. An action can be a PUT or DELETE action for mapping users to their groups.
        OrderingId:
          type: integer
          description: The order in which actions should complete processing. An action can be a PUT or DELETE action for mapping users to their groups.
        FailureReason:
          type: string
          description: The reason an action could not be processed. An action can be a PUT or DELETE action for mapping users to their groups.
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: kendra
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/kendra/service/2019-02-03/kendra-2019-02-03.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)