Virtru policy.kasregistry.KeyAccessServerRegistryService API

The policy.kasregistry.KeyAccessServerRegistryService API from Virtru — 14 operation(s) for policy.kasregistry.keyaccessserverregistryservice.

Operations 14

POST /policy.kasregistry.KeyAccessServerRegistryService/ListKeyAccessServers ListKeyAccessServers #
POST /policy.kasregistry.KeyAccessServerRegistryService/GetKeyAccessServer GetKeyAccessServer #
POST /policy.kasregistry.KeyAccessServerRegistryService/CreateKeyAccessServer CreateKeyAccessServer #
POST /policy.kasregistry.KeyAccessServerRegistryService/UpdateKeyAccessServer UpdateKeyAccessServer #
POST /policy.kasregistry.KeyAccessServerRegistryService/DeleteKeyAccessServer DeleteKeyAccessServer #
POST /policy.kasregistry.KeyAccessServerRegistryService/ListKeyAccessServerGrants ListKeyAccessServerGrants #
POST /policy.kasregistry.KeyAccessServerRegistryService/CreateKey CreateKey #
POST /policy.kasregistry.KeyAccessServerRegistryService/GetKey GetKey #
POST /policy.kasregistry.KeyAccessServerRegistryService/ListKeys ListKeys #
POST /policy.kasregistry.KeyAccessServerRegistryService/UpdateKey UpdateKey #
POST /policy.kasregistry.KeyAccessServerRegistryService/RotateKey RotateKey #
POST /policy.kasregistry.KeyAccessServerRegistryService/SetBaseKey SetBaseKey #
POST /policy.kasregistry.KeyAccessServerRegistryService/GetBaseKey GetBaseKey #
POST /policy.kasregistry.KeyAccessServerRegistryService/ListKeyMappings ListKeyMappings #

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/virtru-policy-kasregistry-keyaccessserverregistryservice-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

virtru-policy-kasregistry-keyaccessserverregistryservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: authorization authorization.AuthorizationService Policy.kasregistry.Key Access Server Registry Service API
servers:
- url: https://api.virtru.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security: []
tags:
- name: policy.kasregistry.KeyAccessServerRegistryService
paths:
  /policy.kasregistry.KeyAccessServerRegistryService/ListKeyAccessServers:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: ListKeyAccessServers
      operationId: policy.kasregistry.KeyAccessServerRegistryService.ListKeyAccessServers
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.ListKeyAccessServersRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.ListKeyAccessServersResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/GetKeyAccessServer:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: GetKeyAccessServer
      operationId: policy.kasregistry.KeyAccessServerRegistryService.GetKeyAccessServer
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.GetKeyAccessServerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.GetKeyAccessServerResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/CreateKeyAccessServer:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: CreateKeyAccessServer
      operationId: policy.kasregistry.KeyAccessServerRegistryService.CreateKeyAccessServer
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.CreateKeyAccessServerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.CreateKeyAccessServerResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/UpdateKeyAccessServer:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: UpdateKeyAccessServer
      operationId: policy.kasregistry.KeyAccessServerRegistryService.UpdateKeyAccessServer
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.UpdateKeyAccessServerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.UpdateKeyAccessServerResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/DeleteKeyAccessServer:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: DeleteKeyAccessServer
      operationId: policy.kasregistry.KeyAccessServerRegistryService.DeleteKeyAccessServer
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.DeleteKeyAccessServerRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.DeleteKeyAccessServerResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/ListKeyAccessServerGrants:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: ListKeyAccessServerGrants
      description: Deprecated
      operationId: policy.kasregistry.KeyAccessServerRegistryService.ListKeyAccessServerGrants
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.ListKeyAccessServerGrantsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.ListKeyAccessServerGrantsResponse'
      deprecated: true
  /policy.kasregistry.KeyAccessServerRegistryService/CreateKey:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: CreateKey
      description: "KAS Key Management\n Request to create a new key in the Key Access Service."
      operationId: policy.kasregistry.KeyAccessServerRegistryService.CreateKey
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.CreateKeyRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.CreateKeyResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/GetKey:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: GetKey
      description: Request to retrieve a key from the Key Access Service.
      operationId: policy.kasregistry.KeyAccessServerRegistryService.GetKey
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.GetKeyRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.GetKeyResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/ListKeys:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: ListKeys
      description: Request to list keys in the Key Access Service.
      operationId: policy.kasregistry.KeyAccessServerRegistryService.ListKeys
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.ListKeysRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.ListKeysResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/UpdateKey:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: UpdateKey
      description: Request to update a key in the Key Access Service.
      operationId: policy.kasregistry.KeyAccessServerRegistryService.UpdateKey
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.UpdateKeyRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.UpdateKeyResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/RotateKey:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: RotateKey
      description: Request to rotate a key in the Key Access Service.
      operationId: policy.kasregistry.KeyAccessServerRegistryService.RotateKey
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.RotateKeyRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.RotateKeyResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/SetBaseKey:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: SetBaseKey
      description: Request to set the default a default kas key.
      operationId: policy.kasregistry.KeyAccessServerRegistryService.SetBaseKey
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.SetBaseKeyRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.SetBaseKeyResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/GetBaseKey:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: GetBaseKey
      description: Get Default kas keys
      operationId: policy.kasregistry.KeyAccessServerRegistryService.GetBaseKey
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.GetBaseKeyRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.GetBaseKeyResponse'
  /policy.kasregistry.KeyAccessServerRegistryService/ListKeyMappings:
    post:
      tags:
      - policy.kasregistry.KeyAccessServerRegistryService
      summary: ListKeyMappings
      description: Request to list key mappings in the Key Access Service.
      operationId: policy.kasregistry.KeyAccessServerRegistryService.ListKeyMappings
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/policy.kasregistry.ListKeyMappingsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/policy.kasregistry.ListKeyMappingsResponse'
components:
  schemas:
    policy.kasregistry.MappedPolicyObject:
      type: object
      properties:
        id:
          type: string
          title: id
          description: The unique identifier of the policy object
        fqn:
          type: string
          title: fqn
          description: The fully qualified name of the policy object
      title: MappedPolicyObject
      additionalProperties: false
    policy.kasregistry.UpdateKeyAccessServerResponse:
      type: object
      properties:
        keyAccessServer:
          title: key_access_server
          $ref: '#/components/schemas/policy.KeyAccessServer'
      title: UpdateKeyAccessServerResponse
      additionalProperties: false
    policy.KasKey:
      type: object
      properties:
        kasId:
          type: string
          title: kas_id
        key:
          title: key
          $ref: '#/components/schemas/policy.AsymmetricKey'
        kasUri:
          type: string
          title: kas_uri
      title: KasKey
      additionalProperties: false
    policy.kasregistry.KasKeyIdentifier:
      type: object
      oneOf:
      - properties:
          kasId:
            type: string
            title: kas_id
            format: uuid
        title: kas_id
        required:
        - kasId
      - properties:
          name:
            type: string
            title: name
            minLength: 1
        title: name
        required:
        - name
      - properties:
          uri:
            type: string
            title: uri
            minLength: 1
            format: uri
        title: uri
        required:
        - uri
      properties:
        kid:
          type: string
          title: kid
          minLength: 1
          description: Required Key ID of the key in question
      title: KasKeyIdentifier
      additionalProperties: false
      description: Nested message for specifying the active key using KAS ID and Key ID
    policy.SimpleKasKey:
      type: object
      properties:
        kasUri:
          type: string
          title: kas_uri
          description: The URL of the Key Access Server
        publicKey:
          title: public_key
          description: The public key of the Key that belongs to the KAS
          $ref: '#/components/schemas/policy.SimpleKasPublicKey'
        kasId:
          type: string
          title: kas_id
          description: The ID of the Key Access Server
      title: SimpleKasKey
      additionalProperties: false
    google.protobuf.Any:
      type: object
      properties:
        type:
          type: string
        value:
          type: string
          format: binary
        debug:
          type: object
          additionalProperties: true
      additionalProperties: true
      description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
    policy.SourceType:
      type: string
      title: SourceType
      enum:
      - SOURCE_TYPE_UNSPECIFIED
      - SOURCE_TYPE_INTERNAL
      - SOURCE_TYPE_EXTERNAL
      description: "Describes whether this kas is managed by the organization or if they imported\n the kas information from an external party. These two modes are necessary in order\n to encrypt a tdf dek with an external parties kas public key."
    policy.kasregistry.DeleteKeyAccessServerRequest:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Required
      title: DeleteKeyAccessServerRequest
      additionalProperties: false
    policy.kasregistry.GetBaseKeyResponse:
      type: object
      properties:
        baseKey:
          title: base_key
          description: The current base key
          $ref: '#/components/schemas/policy.SimpleKasKey'
      title: GetBaseKeyResponse
      additionalProperties: false
    policy.kasregistry.SetBaseKeyResponse:
      type: object
      properties:
        newBaseKey:
          title: new_base_key
          description: The key that was set as base
          $ref: '#/components/schemas/policy.SimpleKasKey'
        previousBaseKey:
          title: previous_base_key
          description: The previous base key, if any
          $ref: '#/components/schemas/policy.SimpleKasKey'
      title: SetBaseKeyResponse
      additionalProperties: false
    policy.PrivateKeyCtx:
      type: object
      properties:
        keyId:
          type: string
          title: key_id
          minLength: 1
          description: Required Key ID for the symmetric key wrapping this key.
        wrappedKey:
          type: string
          title: wrapped_key
          description: Optional Base64 encoded wrapped key. Conditionally required if key_mode is LOCAL. Should not be present if key_mode is REMOTE.
      title: PrivateKeyCtx
      additionalProperties: false
    policy.kasregistry.KasKeysSort:
      type: object
      properties:
        field:
          title: field
          $ref: '#/components/schemas/policy.kasregistry.SortKasKeysType'
        direction:
          title: direction
          $ref: '#/components/schemas/policy.SortDirection'
      title: KasKeysSort
      additionalProperties: false
    policy.kasregistry.ListKeysResponse:
      type: object
      properties:
        kasKeys:
          type: array
          items:
            $ref: '#/components/schemas/policy.KasKey'
          title: kas_keys
          description: The list of kas keys
        pagination:
          title: pagination
          description: Pagination response for the list of keys
          $ref: '#/components/schemas/policy.PageResponse'
      title: ListKeysResponse
      additionalProperties: false
      description: Response to a ListKeysRequest, containing the list of asymmetric keys and pagination information
    policy.kasregistry.CreateKeyResponse:
      type: object
      properties:
        kasKey:
          title: kas_key
          description: The created asymmetric key for a KAS.
          $ref: '#/components/schemas/policy.KasKey'
      title: CreateKeyResponse
      additionalProperties: false
      description: Response to a CreateKeyRequest, containing the created asymmetric key
    policy.kasregistry.UpdateKeyRequest:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Required The unique identifier of the key to update
        metadata:
          title: metadata
          description: "Optional\n Common metadata Mutable metadata for the key"
          $ref: '#/components/schemas/common.MetadataMutable'
        metadataUpdateBehavior:
          title: metadata_update_behavior
          description: The behavior for updating the metadata
          $ref: '#/components/schemas/common.MetadataUpdateEnum'
      title: UpdateKeyRequest
      additionalProperties: false
      description: 'Update an existing asymmetric key in the Key Management System

        Metadata update behavior must be either APPEND or REPLACE, when updating metadata.:

        ```

        ((!has(this.metadata)) || (has(this.metadata) && this.metadata_update_behavior != 0))

        ```


        '
    policy.kasregistry.SortKeyAccessServersType:
      type: string
      title: SortKeyAccessServersType
      enum:
      - SORT_KEY_ACCESS_SERVERS_TYPE_UNSPECIFIED
      - SORT_KEY_ACCESS_SERVERS_TYPE_NAME
      - SORT_KEY_ACCESS_SERVERS_TYPE_URI
      - SORT_KEY_ACCESS_SERVERS_TYPE_CREATED_AT
      - SORT_KEY_ACCESS_SERVERS_TYPE_UPDATED_AT
    policy.KeyStatus:
      type: string
      title: KeyStatus
      enum:
      - KEY_STATUS_UNSPECIFIED
      - KEY_STATUS_ACTIVE
      - KEY_STATUS_ROTATED
      description: The status of the key
    policy.kasregistry.ListKeyAccessServersResponse:
      type: object
      properties:
        keyAccessServers:
          type: array
          items:
            $ref: '#/components/schemas/policy.KeyAccessServer'
          title: key_access_servers
        pagination:
          title: pagination
          $ref: '#/components/schemas/policy.PageResponse'
      title: ListKeyAccessServersResponse
      additionalProperties: false
    policy.kasregistry.UpdateKeyResponse:
      type: object
      properties:
        kasKey:
          title: kas_key
          description: The updated kas key
          $ref: '#/components/schemas/policy.KasKey'
      title: UpdateKeyResponse
      additionalProperties: false
      description: Response to an UpdateKeyRequest, containing the updated asymmetric key
    policy.kasregistry.GrantedPolicyObject:
      type: object
      properties:
        id:
          type: string
          title: id
        fqn:
          type: string
          title: fqn
      title: GrantedPolicyObject
      additionalProperties: false
      description: Can be namespace, attribute definition, or value
    policy.KeyAccessServer:
      type: object
      properties:
        id:
          type: string
          title: id
        uri:
          type: string
          title: uri
          description: 'Address of a KAS instance

            URI must be a valid URL (e.g., ''https://demo.com/'') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.:

            ```

            this.matches(''^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$'')

            ```


            '
        publicKey:
          title: public_key
          description: 'Deprecated: KAS can have multiple key pairs'
          $ref: '#/components/schemas/policy.PublicKey'
        sourceType:
          title: source_type
          description: 'The source of the KAS: (INTERNAL, EXTERNAL)'
          $ref: '#/components/schemas/policy.SourceType'
        kasKeys:
          type: array
          items:
            $ref: '#/components/schemas/policy.SimpleKasKey'
          title: kas_keys
          description: Kas keys associated with this KAS
        name:
          type: string
          title: name
          description: "Optional\n Unique name of the KAS instance"
        metadata:
          title: metadata
          description: Common metadata
          $ref: '#/components/schemas/common.Metadata'
      title: KeyAccessServer
      additionalProperties: false
      description: Key Access Server Registry
    policy.kasregistry.GetKeyAccessServerRequest:
      type: object
      oneOf:
      - properties:
          kasId:
            type: string
            title: kas_id
            format: uuid
            description: 'option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field'
        title: kas_id
        required:
        - kasId
      - properties:
          name:
            type: string
            title: name
            minLength: 1
        title: name
        required:
        - name
      - properties:
          uri:
            type: string
            title: uri
            minLength: 1
            format: uri
        title: uri
        required:
        - uri
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Deprecated
          deprecated: true
      title: GetKeyAccessServerRequest
      additionalProperties: false
      description: 'Either use deprecated ''id'' field or one of ''kas_id'' or ''uri'', but not both:

        ```

        !(has(this.id) && (has(this.kas_id) || has(this.uri) || has(this.name)))

        ```


        Either id or one of kas_id or uri must be set:

        ```

        has(this.id) || has(this.kas_id) || has(this.uri) || has(this.name)

        ```


        '
    policy.kasregistry.DeleteKeyAccessServerResponse:
      type: object
      properties:
        keyAccessServer:
          title: key_access_server
          $ref: '#/components/schemas/policy.KeyAccessServer'
      title: DeleteKeyAccessServerResponse
      additionalProperties: false
    policy.kasregistry.CreateKeyAccessServerRequest:
      type: object
      properties:
        uri:
          type: string
          title: uri
          description: 'Required

            URI must be a valid URL (e.g., ''https://demo.com/'') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.:

            ```

            this.isUri()

            ```


            '
        publicKey:
          title: public_key
          description: Deprecated
          $ref: '#/components/schemas/policy.PublicKey'
        sourceType:
          title: source_type
          description: Optional
          $ref: '#/components/schemas/policy.SourceType'
        name:
          type: string
          title: name
          maxLength: 253
          description: 'Optional

            Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.:

            ```

            size(this) > 0 ? this.matches(''^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$'') : true

            ```


            '
        metadata:
          title: metadata
          description: Common metadata
          $ref: '#/components/schemas/common.MetadataMutable'
      title: CreateKeyAccessServerRequest
      additionalProperties: false
    policy.SortDirection:
      type: string
      title: SortDirection
      enum:
      - SORT_DIRECTION_UNSPECIFIED
      - SORT_DIRECTION_ASC
      - SORT_DIRECTION_DESC
      description: "Sorting direction shared across list APIs.\n When the 'sort' field is omitted or the chosen sort 'field' is UNSPECIFIED,\n the endpoint's request message defines the default ordering; see the\n specific List* request docs."
    policy.SimpleKasPublicKey:
      type: object
      properties:
        algorithm:
          title: algorithm
          $ref: '#/components/schemas/policy.Algorithm'
        kid:
          type: string
          title: kid
        pem:
          type: string
          title: pem
      title: SimpleKasPublicKey
      additionalProperties: false
    policy.KeyProviderConfig:
      type: object
      properties:
        id:
          type: string
          title: id
        name:
          type: string
          title: name
        configJson:
          type: string
          title: config_json
          format: byte
        manager:
          type: string
          title: manager
        metadata:
          title: metadata
          description: Common metadata
          $ref: '#/components/schemas/common.Metadata'
      title: KeyProviderConfig
      additionalProperties: false
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    policy.kasregistry.ChangeMappings:
      type: object
      properties:
        id:
          type: string
          title: id
        fqn:
          type: string
          title: fqn
      title: ChangeMappings
      additionalProperties: false
      description: "*\n Simplified information about the resources that were rotated as part of the key rotation process."
    policy.kasregistry.ListKeyAccessServersRequest:
      type: object
      properties:
        pagination:
          title: pagination
          description: Optional
          $ref: '#/components/schemas/policy.PageReque

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/virtru/refs/heads/main/openapi/virtru-policy-kasregistry-keyaccessserverregistryservice-api-openapi.yml