Virtru policy.namespaces.NamespaceService API

The policy.namespaces.NamespaceService API from Virtru — 9 operation(s) for policy.namespaces.namespaceservice.

OpenAPI Specification

virtru-policy-namespaces-namespaceservice-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: authorization authorization.AuthorizationService policy.namespaces.NamespaceService API
security: []
tags:
- name: policy.namespaces.NamespaceService
paths:
  /policy.namespaces.NamespaceService/GetNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: GetNamespace
      operationId: policy.namespaces.NamespaceService.GetNamespace
      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.namespaces.GetNamespaceRequest'
        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.namespaces.GetNamespaceResponse'
  /policy.namespaces.NamespaceService/ListNamespaces:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: ListNamespaces
      operationId: policy.namespaces.NamespaceService.ListNamespaces
      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.namespaces.ListNamespacesRequest'
        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.namespaces.ListNamespacesResponse'
  /policy.namespaces.NamespaceService/CreateNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: CreateNamespace
      operationId: policy.namespaces.NamespaceService.CreateNamespace
      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.namespaces.CreateNamespaceRequest'
        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.namespaces.CreateNamespaceResponse'
  /policy.namespaces.NamespaceService/UpdateNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: UpdateNamespace
      operationId: policy.namespaces.NamespaceService.UpdateNamespace
      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.namespaces.UpdateNamespaceRequest'
        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.namespaces.UpdateNamespaceResponse'
  /policy.namespaces.NamespaceService/DeactivateNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: DeactivateNamespace
      operationId: policy.namespaces.NamespaceService.DeactivateNamespace
      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.namespaces.DeactivateNamespaceRequest'
        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.namespaces.DeactivateNamespaceResponse'
  /policy.namespaces.NamespaceService/AssignKeyAccessServerToNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: AssignKeyAccessServerToNamespace
      description: 'Deprecated: utilize AssignPublicKeyToNamespace'
      operationId: policy.namespaces.NamespaceService.AssignKeyAccessServerToNamespace
      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.namespaces.AssignKeyAccessServerToNamespaceRequest'
        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.namespaces.AssignKeyAccessServerToNamespaceResponse'
      deprecated: true
  /policy.namespaces.NamespaceService/RemoveKeyAccessServerFromNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: RemoveKeyAccessServerFromNamespace
      description: 'Deprecated: utilize RemovePublicKeyFromNamespace'
      operationId: policy.namespaces.NamespaceService.RemoveKeyAccessServerFromNamespace
      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.namespaces.RemoveKeyAccessServerFromNamespaceRequest'
        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.namespaces.RemoveKeyAccessServerFromNamespaceResponse'
      deprecated: true
  /policy.namespaces.NamespaceService/AssignPublicKeyToNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: AssignPublicKeyToNamespace
      description: "--------------------------------------*\n Namespace <> Key RPCs\n---------------------------------------"
      operationId: policy.namespaces.NamespaceService.AssignPublicKeyToNamespace
      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.namespaces.AssignPublicKeyToNamespaceRequest'
        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.namespaces.AssignPublicKeyToNamespaceResponse'
  /policy.namespaces.NamespaceService/RemovePublicKeyFromNamespace:
    post:
      tags:
      - policy.namespaces.NamespaceService
      summary: RemovePublicKeyFromNamespace
      operationId: policy.namespaces.NamespaceService.RemovePublicKeyFromNamespace
      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.namespaces.RemovePublicKeyFromNamespaceRequest'
        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.namespaces.RemovePublicKeyFromNamespaceResponse'
components:
  schemas:
    policy.PublicKey:
      type: object
      oneOf:
      - properties:
          cached:
            title: cached
            description: public key with additional information. Current preferred version
            $ref: '#/components/schemas/policy.KasPublicKeySet'
        title: cached
        required:
        - cached
      - properties:
          remote:
            type: string
            title: remote
            description: 'kas public key url - optional since can also be retrieved via public key

              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])?)*(/.*)?$'')

              ```


              '
        title: remote
        required:
        - remote
      title: PublicKey
      additionalProperties: false
      description: Deprecated
    policy.Algorithm:
      type: string
      title: Algorithm
      enum:
      - ALGORITHM_UNSPECIFIED
      - ALGORITHM_RSA_2048
      - ALGORITHM_RSA_4096
      - ALGORITHM_EC_P256
      - ALGORITHM_EC_P384
      - ALGORITHM_EC_P521
      - ALGORITHM_HPQT_XWING
      - ALGORITHM_HPQT_SECP256R1_MLKEM768
      - ALGORITHM_HPQT_SECP384R1_MLKEM1024
      - ALGORITHM_MLKEM_768
      - ALGORITHM_MLKEM_1024
      description: Supported key algorithms.
    policy.namespaces.RemoveKeyAccessServerFromNamespaceResponse:
      type: object
      properties:
        namespaceKeyAccessServer:
          title: namespace_key_access_server
          $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer'
      title: RemoveKeyAccessServerFromNamespaceResponse
      additionalProperties: false
    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.namespaces.AssignKeyAccessServerToNamespaceRequest:
      type: object
      properties:
        namespaceKeyAccessServer:
          title: namespace_key_access_server
          $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer'
      title: AssignKeyAccessServerToNamespaceRequest
      additionalProperties: false
      description: 'Deprecated: utilize AssignPublicKeyToNamespaceRequest'
    common.Metadata:
      type: object
      properties:
        createdAt:
          title: created_at
          description: created_at set by server (entity who created will recorded in an audit event)
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        updatedAt:
          title: updated_at
          description: updated_at set by server (entity who updated will recorded in an audit event)
          $ref: '#/components/schemas/google.protobuf.Timestamp'
        labels:
          type: object
          title: labels
          additionalProperties:
            type: string
            title: value
          description: optional short description
      title: Metadata
      additionalProperties: false
      description: Struct to uniquely identify a resource with optional additional metadata
    connect-protocol-version:
      type: number
      title: Connect-Protocol-Version
      enum:
      - 1
      description: Define the version of the Connect protocol
      const: 1
    policy.namespaces.ListNamespacesRequest:
      type: object
      properties:
        state:
          title: state
          description: "Optional\n ACTIVE by default when not specified"
          $ref: '#/components/schemas/common.ActiveStateEnum'
        pagination:
          title: pagination
          description: Optional
          $ref: '#/components/schemas/policy.PageRequest'
        sort:
          type: array
          items:
            $ref: '#/components/schemas/policy.namespaces.NamespacesSort'
          title: sort
          maxItems: 1
          description: "Optional - CONSTRAINT: max 1 item\n Sort defaults:\n   - direction UNSPECIFIED defaults to DESC for the specified field\n   - field UNSPECIFIED defaults to created_at with the specified direction\n   - both UNSPECIFIED or sort omitted defaults to created_at DESC"
        search:
          title: search
          description: Optional
          $ref: '#/components/schemas/policy.Search'
      title: ListNamespacesRequest
      additionalProperties: false
    policy.namespaces.RemovePublicKeyFromNamespaceRequest:
      type: object
      properties:
        namespaceKey:
          title: namespace_key
          $ref: '#/components/schemas/policy.namespaces.NamespaceKey'
      title: RemovePublicKeyFromNamespaceRequest
      required:
      - namespaceKey
      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.namespaces.SortNamespacesType:
      type: string
      title: SortNamespacesType
      enum:
      - SORT_NAMESPACES_TYPE_UNSPECIFIED
      - SORT_NAMESPACES_TYPE_NAME
      - SORT_NAMESPACES_TYPE_FQN
      - SORT_NAMESPACES_TYPE_CREATED_AT
      - SORT_NAMESPACES_TYPE_UPDATED_AT
    policy.namespaces.AssignKeyAccessServerToNamespaceResponse:
      type: object
      properties:
        namespaceKeyAccessServer:
          title: namespace_key_access_server
          $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer'
      title: AssignKeyAccessServerToNamespaceResponse
      additionalProperties: false
    policy.KasPublicKey:
      type: object
      properties:
        pem:
          type: string
          title: pem
          maxLength: 8192
          minLength: 1
          description: x509 ASN.1 content in PEM envelope, usually
        kid:
          type: string
          title: kid
          maxLength: 32
          minLength: 1
          description: A unique string identifier for this key
        alg:
          not:
            enum:
            - 0
          title: alg
          description: "A known algorithm type with any additional parameters encoded.\n To start, these may be `rsa:2048` for RSA-based wrapping and\n `ec:secp256r1` for EC-based wrapping, but more formats may be added as needed."
          $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum'
      title: KasPublicKey
      additionalProperties: false
      description: "Deprecated\n A KAS public key and some associated metadata for further identifcation"
    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.namespaces.GetNamespaceRequest:
      type: object
      oneOf:
      - properties:
          fqn:
            type: string
            title: fqn
            minLength: 1
            format: uri
        title: fqn
        required:
        - fqn
      - properties:
          namespaceId:
            type: string
            title: namespace_id
            format: uuid
            description: 'option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field'
        title: namespace_id
        required:
        - namespaceId
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Deprecated
          deprecated: true
      title: GetNamespaceRequest
      additionalProperties: false
      description: 'Either use deprecated ''id'' field or one of ''namespace_id'' or ''fqn'', but not both:

        ```

        !(has(this.id) && (has(this.namespace_id) || has(this.fqn)))

        ```


        Either id or one of namespace_id or fqn must be set:

        ```

        has(this.id) || has(this.namespace_id) || has(this.fqn)

        ```


        '
    policy.namespaces.UpdateNamespaceRequest:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Required
        metadata:
          title: metadata
          description: Optional
          $ref: '#/components/schemas/common.MetadataMutable'
        metadataUpdateBehavior:
          title: metadata_update_behavior
          $ref: '#/components/schemas/common.MetadataUpdateEnum'
      title: UpdateNamespaceRequest
      additionalProperties: false
    google.protobuf.Timestamp:
      type: string
      examples:
      - 1s
      - 1.000340012s
      format: date-time
      description: "A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n     Timestamp timestamp;\n     timestamp.set_seconds(time(NULL));\n     timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n     struct timeval tv;\n     gettimeofday(&tv, NULL);\n\n     Timestamp timestamp;\n     timestamp.set_seconds(tv.tv_sec);\n     timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n     FILETIME ft;\n     GetSystemTimeAsFileTime(&ft);\n     UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n\n     // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n     // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n     Timestamp timestamp;\n     timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n     timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n     long millis = System.currentTimeMillis();\n\n     Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n         .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n     Instant now = Instant.now();\n\n     Timestamp timestamp =\n         Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n             .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n     timestamp = Timestamp()\n     timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format."
    policy.KasPublicKeyAlgEnum:
      type: string
      title: KasPublicKeyAlgEnum
      enum:
      - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED
      - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048
      - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096
      - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1
      - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1
      - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1
      - KAS_PUBLIC_KEY_ALG_ENUM_HPQT_XWING
      - KAS_PUBLIC_KEY_ALG_ENUM_HPQT_SECP256R1_MLKEM768
      - KAS_PUBLIC_KEY_ALG_ENUM_HPQT_SECP384R1_MLKEM1024
      - KAS_PUBLIC_KEY_ALG_ENUM_MLKEM_768
      - KAS_PUBLIC_KEY_ALG_ENUM_MLKEM_1024
    policy.PageResponse:
      type: object
      properties:
        currentOffset:
          type: integer
          title: current_offset
          format: int32
          description: Requested pagination offset
        nextOffset:
          type: integer
          title: next_offset
          format: int32
          description: "Calculated with request limit + offset or defaults\n Empty when none remain after current page"
        total:
          type: integer
          title: total
          format: int32
          description: Total count of entire list
      title: PageResponse
      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.namespaces.RemoveKeyAccessServerFromNamespaceRequest:
      type: object
      properties:
        namespaceKeyAccessServer:
          title: namespace_key_access_server
          $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer'
      title: RemoveKeyAccessServerFromNamespaceRequest
      additionalProperties: false
      description: 'Deprecated: utilize RemovePublicKeyFromNamespaceRequest'
    policy.namespaces.NamespacesSort:
      type: object
      properties:
        field:
          title: field
          $ref: '#/components/schemas/policy.namespaces.SortNamespacesType'
        direction:
          title: direction
          $ref: '#/components/schemas/policy.SortDirection'
      title: NamespacesSort
      additionalProperties: false
    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.namespaces.RemovePublicKeyFromNamespaceResponse:
      type: object
      properties:
        namespaceKey:
          title: namespace_key
          $ref: '#/components/schemas/policy.namespaces.NamespaceKey'
      title: RemovePublicKeyFromNamespaceResponse
      additionalProperties: false
    common.ActiveStateEnum:
      type: string
      title: ActiveStateEnum
      enum:
      - ACTIVE_STATE_ENUM_UNSPECIFIED
      - ACTIVE_STATE_ENUM_ACTIVE
      - ACTIVE_STATE_ENUM_INACTIVE
      - ACTIVE_STATE_ENUM_ANY
      description: 'buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren''t violated when users add new enum values to an enum in a given package'
    policy.namespaces.AssignPublicKeyToNamespaceResponse:
      type: object
      properties:
        namespaceKey:
          title: namespace_key
          $ref: '#/components/schemas/policy.namespaces.NamespaceKey'
      title: AssignPublicKeyToNamespaceResponse
      additionalProperties: false
    policy.namespaces.UpdateNamespaceResponse:
      type: object
      properties:
        namespace:
          title: namespace
          $ref: '#/components/schemas/policy.Namespace'
      title: UpdateNamespaceResponse
      additionalProperties: false
    policy.namespaces.AssignPublicKeyToNamespaceRequest:
      type: object
      properties:
        namespaceKey:
          title: namespace_key
          $ref: '#/components/schemas/policy.namespaces.NamespaceKey'
      title: AssignPublicKeyToNamespaceRequest
      required:
      - namespaceKey
      additionalProperties: false
      description: Assign Key to Namespace
    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
    common.MetadataUpdateEnum:
      type: string
      title: MetadataUpdateEnum
      enum:
      - METADATA_UPDATE_ENUM_UNSPECIFIED
      - METADATA_UPDATE_ENUM_EXTEND
      - METADATA_UPDATE_ENUM_REPLACE
    policy.KasPublicKeySet:
      type: object
      properties:
        keys:
          type: array
          items:
            $ref: '#/components/schemas/policy.KasPublicKey'
          title: keys
      title: KasPublicKeySet
      additionalProperties: false
      description: "Deprecated\n A list of known KAS public keys"
    policy.namespaces.DeactivateNamespaceRequest:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Required
      title: DeactivateNamespaceRequest
      additionalProperties: false
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    policy.namespaces.NamespaceKey:
      type: object
      properties:
        namespaceId:
          type: string
          title: namespace_id
          format: uuid
          description: Required
        keyId:
          type: string
          title: key_id
          format: uuid
          description: Required (The id from the Asymmetric Key object)
      title: NamespaceKey
      required:
      - namespaceId
      - keyId
      additionalProperties: false
    common.MetadataMutable:
      type: object
      properties:
        labels:
          type: object
          title: labels
          additionalProperties:
            type: string
            title: value
          description: optional labels
      title: MetadataMutable
      additionalProperties: false
    policy.PageRequest:
      type: object
      properties:
        limit:
          type: integer
          title: limit
          format: int32
          description: "Optional\n Set to configured default limit if not provided\n Maximum limit set in platform config and enforced by services"
        offset:
          type: integer
          title: offset
          format: int32
          description: "Optional\n Defaulted if not provided"
      title: PageRequest
      additionalProperties: false
    policy.Search:
      type: object
      properties:
        term:
          type: string
          title: term
          maxLength: 253
          minLength: 1
      title: Search
      additionalProperties: false
    connect.error:
      type: object
      properties:

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