CloudFront Key Group API

The Key Group API from CloudFront — 3 operation(s) for key group.

Operations 6

POST /2020-05-31/key-group Create Key Group #
GET /2020-05-31/key-group List Key Groups #
DELETE /2020-05-31/key-group/{Id} Delete Key Group #
GET /2020-05-31/key-group/{Id} Get Key Group #
PUT /2020-05-31/key-group/{Id} Update Key Group #
GET /2020-05-31/key-group/{Id}/config Get Key Group Config #

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/cloudfront:cloudfront-key-group-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

cloudfront-key-group-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon CloudFront Key Group API
  version: '2020-05-31'
  description: Generated from AWS's published Smithy model for Amazon CloudFront. 6 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://cloudfront.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /2020-05-31/key-group:
    post:
      operationId: CreateKeyGroup
      summary: Create Key Group
      description: Creates a key group that you can use with CloudFront signed URLs and signed cookies. To create a key group,
        you must specify at least one public key for the key group. After you create a key group, you can reference it from
        one or more cache behaviors. When you reference a key group in a cache behavior, CloudFront requires signed URLs or
        signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key
        whose corresponding public key is in the key group. The signed URL or cookie contains information about which public
        key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon
        CloudFront Developer Guide.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/CreateKeyGroupResult'
        '400':
          description: InvalidArgument; TooManyKeyGroups; TooManyPublicKeysInKeyGroup
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidArgument'
        '409':
          description: KeyGroupAlreadyExists
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/KeyGroupAlreadyExists'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/CreateKeyGroupRequest'
      tags:
      - Key Group
    get:
      operationId: ListKeyGroups
      summary: List Key Groups
      description: Gets a list of key groups. You can optionally specify the maximum number of items to receive in the response.
        If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response
        is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the
        current response as the Marker value in the subsequent request.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/ListKeyGroupsResult'
        '400':
          description: InvalidArgument
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidArgument'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/ListKeyGroupsRequest'
      tags:
      - Key Group
  /2020-05-31/key-group/{Id}:
    delete:
      operationId: DeleteKeyGroup
      summary: Delete Key Group
      description: Deletes a key group. You cannot delete a key group that is referenced in a cache behavior. First update
        your distributions to remove the key group from all cache behaviors, then delete the key group. To delete a key group,
        you must provide the key group's identifier and version. To get these values, use ListKeyGroups followed by GetKeyGroup
        or GetKeyGroupConfig.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                type: string
        '400':
          description: InvalidIfMatchVersion
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidIfMatchVersion'
        '404':
          description: NoSuchResource
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchResource'
        '412':
          description: PreconditionFailed
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/PreconditionFailed'
        '409':
          description: ResourceInUse
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/ResourceInUse'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/DeleteKeyGroupRequest'
      tags:
      - Key Group
    get:
      operationId: GetKeyGroup
      summary: Get Key Group
      description: Gets a key group, including the date and time when the key group was last modified. To get a key group,
        you must provide the key group's identifier. If the key group is referenced in a distribution's cache behavior, you
        can get the key group's identifier using ListDistributions or GetDistribution. If the key group is not referenced
        in a cache behavior, you can get the identifier using ListKeyGroups.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/GetKeyGroupResult'
        '404':
          description: NoSuchResource
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchResource'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetKeyGroupRequest'
      tags:
      - Key Group
    put:
      operationId: UpdateKeyGroup
      summary: Update Key Group
      description: 'Updates a key group. When you update a key group, all the fields are updated with the values provided
        in the request. You cannot update some fields independent of others. To update a key group: Get the current key group
        with GetKeyGroup or GetKeyGroupConfig. Locally modify the fields in the key group that you want to update. For example,
        add or remove public key IDs. Call UpdateKeyGroup with the entire key group object, including the fields that you
        modified and those that you didn''t.'
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/UpdateKeyGroupResult'
        '400':
          description: InvalidArgument; InvalidIfMatchVersion; TooManyPublicKeysInKeyGroup
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/InvalidArgument'
        '409':
          description: KeyGroupAlreadyExists
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/KeyGroupAlreadyExists'
        '404':
          description: NoSuchResource
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchResource'
        '412':
          description: PreconditionFailed
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/PreconditionFailed'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateKeyGroupRequest'
      tags:
      - Key Group
  /2020-05-31/key-group/{Id}/config:
    get:
      operationId: GetKeyGroupConfig
      summary: Get Key Group Config
      description: Gets a key group configuration. To get a key group configuration, you must provide the key group's identifier.
        If the key group is referenced in a distribution's cache behavior, you can get the key group's identifier using ListDistributions
        or GetDistribution. If the key group is not referenced in a cache behavior, you can get the identifier using ListKeyGroups.
      responses:
        '200':
          description: Success
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/GetKeyGroupConfigResult'
        '404':
          description: NoSuchResource
          content:
            text/xml:
              schema:
                $ref: '#/components/schemas/NoSuchResource'
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/GetKeyGroupConfigRequest'
      tags:
      - Key Group
components:
  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: cloudfront
  schemas:
    CreateKeyGroupRequest:
      type: object
      properties:
        KeyGroupConfig:
          $ref: '#/components/schemas/KeyGroupConfig'
      required:
      - KeyGroupConfig
    CreateKeyGroupResult:
      type: object
      properties:
        KeyGroup:
          $ref: '#/components/schemas/KeyGroup'
        Location:
          type: string
          description: The URL of the key group.
        ETag:
          type: string
          description: The identifier for this version of the key group.
    DeleteKeyGroupRequest:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the key group that you are deleting. To get the identifier, use ListKeyGroups.
        IfMatch:
          type: string
          description: The version of the key group that you are deleting. The version is the key group's ETag value. To get
            the ETag, use GetKeyGroup or GetKeyGroupConfig.
      required:
      - Id
    GetKeyGroupConfigRequest:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the key group whose configuration you are getting. To get the identifier, use ListKeyGroups.
      required:
      - Id
    GetKeyGroupConfigResult:
      type: object
      properties:
        KeyGroupConfig:
          $ref: '#/components/schemas/KeyGroupConfig'
        ETag:
          type: string
          description: The identifier for this version of the key group.
    GetKeyGroupRequest:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the key group that you are getting. To get the identifier, use ListKeyGroups.
      required:
      - Id
    GetKeyGroupResult:
      type: object
      properties:
        KeyGroup:
          $ref: '#/components/schemas/KeyGroup'
        ETag:
          type: string
          description: The identifier for this version of the key group.
    InvalidArgument:
      type: object
      properties:
        Message:
          type: string
    InvalidIfMatchVersion:
      type: object
      properties:
        Message:
          type: string
    KeyGroup:
      type: object
      properties:
        Id:
          type: string
          description: The identifier for the key group.
        LastModifiedTime:
          type: string
          format: date-time
          description: The date and time when the key group was last modified.
        KeyGroupConfig:
          $ref: '#/components/schemas/KeyGroupConfig'
      required:
      - Id
      - LastModifiedTime
      - KeyGroupConfig
    KeyGroupAlreadyExists:
      type: object
      properties:
        Message:
          type: string
    KeyGroupConfig:
      type: object
      properties:
        Name:
          type: string
          description: A name to identify the key group.
        Items:
          type: array
          items:
            type: string
          description: A list of the identifiers of the public keys in the key group.
        Comment:
          type: string
          description: A comment to describe the key group. The comment cannot be longer than 128 characters.
      required:
      - Name
      - Items
    KeyGroupList:
      type: object
      properties:
        NextMarker:
          type: string
          description: If there are more items in the list than are in this response, this element is present. It contains
            the value that you should use in the Marker field of a subsequent request to continue listing key groups.
        MaxItems:
          type: integer
          description: The maximum number of key groups requested.
        Quantity:
          type: integer
          description: The number of key groups returned in the response.
        Items:
          type: array
          items:
            $ref: '#/components/schemas/KeyGroupSummary'
          description: A list of key groups.
      required:
      - MaxItems
      - Quantity
    KeyGroupSummary:
      type: object
      properties:
        KeyGroup:
          $ref: '#/components/schemas/KeyGroup'
      required:
      - KeyGroup
    ListKeyGroupsRequest:
      type: object
      properties:
        Marker:
          type: string
          description: Use this field when paginating results to indicate where to begin in your list of key groups. The response
            includes key groups in the list that occur after the marker. To get the next page of the list, set this field's
            value to the value of NextMarker from the current page's response.
        MaxItems:
          type: integer
          description: The maximum number of key groups that you want in the response.
    ListKeyGroupsResult:
      type: object
      properties:
        KeyGroupList:
          $ref: '#/components/schemas/KeyGroupList'
    NoSuchResource:
      type: object
      properties:
        Message:
          type: string
    PreconditionFailed:
      type: object
      properties:
        Message:
          type: string
    ResourceInUse:
      type: object
      properties:
        Message:
          type: string
    UpdateKeyGroupRequest:
      type: object
      properties:
        KeyGroupConfig:
          $ref: '#/components/schemas/KeyGroupConfig'
        Id:
          type: string
          description: The identifier of the key group that you are updating.
        IfMatch:
          type: string
          description: The version of the key group that you are updating. The version is the key group's ETag value.
      required:
      - KeyGroupConfig
      - Id
    UpdateKeyGroupResult:
      type: object
      properties:
        KeyGroup:
          $ref: '#/components/schemas/KeyGroup'
        ETag:
          type: string
          description: The identifier for this version of the key group.
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/cloudfront/service/2020-05-31/cloudfront-2020-05-31.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)