Virtru policy.actions.ActionService API

The policy.actions.ActionService API from Virtru — 5 operation(s) for policy.actions.actionservice.

Operations 5

POST /policy.actions.ActionService/GetAction GetAction #
POST /policy.actions.ActionService/ListActions ListActions #
POST /policy.actions.ActionService/CreateAction CreateAction #
POST /policy.actions.ActionService/UpdateAction UpdateAction #
POST /policy.actions.ActionService/DeleteAction DeleteAction #

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-actions-actionservice-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-actions-actionservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: authorization authorization.AuthorizationService Policy.actions.Action Service API
servers:
- url: https://api.virtru.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security: []
tags:
- name: policy.actions.ActionService
paths:
  /policy.actions.ActionService/GetAction:
    post:
      tags:
      - policy.actions.ActionService
      summary: GetAction
      operationId: policy.actions.ActionService.GetAction
      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.actions.GetActionRequest'
        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.actions.GetActionResponse'
  /policy.actions.ActionService/ListActions:
    post:
      tags:
      - policy.actions.ActionService
      summary: ListActions
      operationId: policy.actions.ActionService.ListActions
      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.actions.ListActionsRequest'
        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.actions.ListActionsResponse'
  /policy.actions.ActionService/CreateAction:
    post:
      tags:
      - policy.actions.ActionService
      summary: CreateAction
      operationId: policy.actions.ActionService.CreateAction
      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.actions.CreateActionRequest'
        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.actions.CreateActionResponse'
  /policy.actions.ActionService/UpdateAction:
    post:
      tags:
      - policy.actions.ActionService
      summary: UpdateAction
      operationId: policy.actions.ActionService.UpdateAction
      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.actions.UpdateActionRequest'
        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.actions.UpdateActionResponse'
  /policy.actions.ActionService/DeleteAction:
    post:
      tags:
      - policy.actions.ActionService
      summary: DeleteAction
      operationId: policy.actions.ActionService.DeleteAction
      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.actions.DeleteActionRequest'
        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.actions.DeleteActionResponse'
components:
  schemas:
    policy.Value:
      type: object
      properties:
        id:
          type: string
          title: id
          description: generated uuid in database
        attribute:
          title: attribute
          $ref: '#/components/schemas/policy.Attribute'
        value:
          type: string
          title: value
        grants:
          type: array
          items:
            $ref: '#/components/schemas/policy.KeyAccessServer'
          title: grants
          description: Deprecated KAS grants for the value. Use kas_keys instead.
        fqn:
          type: string
          title: fqn
        active:
          title: active
          description: active by default until explicitly deactivated
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        subjectMappings:
          type: array
          items:
            $ref: '#/components/schemas/policy.SubjectMapping'
          title: subject_mappings
          description: subject mapping
        kasKeys:
          type: array
          items:
            $ref: '#/components/schemas/policy.SimpleKasKey'
          title: kas_keys
        resourceMappings:
          type: array
          items:
            $ref: '#/components/schemas/policy.ResourceMapping'
          title: resource_mappings
        obligations:
          type: array
          items:
            $ref: '#/components/schemas/policy.Obligation'
          title: obligations
        metadata:
          title: metadata
          description: Common metadata
          $ref: '#/components/schemas/common.Metadata'
      title: Value
      additionalProperties: false
    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.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
    policy.actions.UpdateActionResponse:
      type: object
      properties:
        action:
          title: action
          $ref: '#/components/schemas/policy.Action'
      title: UpdateActionResponse
      additionalProperties: false
    policy.RequestContext:
      type: object
      properties:
        pep:
          title: pep
          $ref: '#/components/schemas/policy.PolicyEnforcementPoint'
      title: RequestContext
      required:
      - pep
      additionalProperties: false
      description: Holds the context needed for obligation fulfillment
    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.ConditionGroup:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/policy.Condition'
          title: conditions
          minItems: 1
        booleanOperator:
          title: boolean_operator
          description: the boolean evaluation type across the conditions
          $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum'
      title: ConditionGroup
      required:
      - booleanOperator
      additionalProperties: false
      description: A collection of Conditions evaluated by the boolean_operator provided
    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.actions.CreateActionResponse:
      type: object
      properties:
        action:
          title: action
          $ref: '#/components/schemas/policy.Action'
      title: CreateActionResponse
      additionalProperties: false
    policy.actions.ListActionsResponse:
      type: object
      properties:
        actionsStandard:
          type: array
          items:
            $ref: '#/components/schemas/policy.Action'
          title: actions_standard
        actionsCustom:
          type: array
          items:
            $ref: '#/components/schemas/policy.Action'
          title: actions_custom
        pagination:
          title: pagination
          $ref: '#/components/schemas/policy.PageResponse'
      title: ListActionsResponse
      additionalProperties: false
    policy.AttributeRuleTypeEnum:
      type: string
      title: AttributeRuleTypeEnum
      enum:
      - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED
      - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF
      - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF
      - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY
    policy.actions.GetActionResponse:
      type: object
      properties:
        action:
          title: action
          $ref: '#/components/schemas/policy.Action'
        subjectMappings:
          type: array
          items:
            $ref: '#/components/schemas/policy.SubjectMapping'
          title: subject_mappings
          description: Subject Mappings driving entitlement to the action
      title: GetActionResponse
      additionalProperties: false
    policy.Attribute:
      type: object
      properties:
        id:
          type: string
          title: id
        namespace:
          title: namespace
          description: namespace of the attribute
          $ref: '#/components/schemas/policy.Namespace'
        name:
          type: string
          title: name
          description: attribute name
        rule:
          title: rule
          description: attribute rule enum
          $ref: '#/components/schemas/policy.AttributeRuleTypeEnum'
        values:
          type: array
          items:
            $ref: '#/components/schemas/policy.Value'
          title: values
        grants:
          type: array
          items:
            $ref: '#/components/schemas/policy.KeyAccessServer'
          title: grants
          description: Deprecated KAS grants for the attribute. Use kas_keys instead.
        fqn:
          type: string
          title: fqn
        active:
          title: active
          description: active by default until explicitly deactivated
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        kasKeys:
          type: array
          items:
            $ref: '#/components/schemas/policy.SimpleKasKey'
          title: kas_keys
          description: Keys associated with the attribute
        allowTraversal:
          title: allow_traversal
          description: "Whether or not we will use the attribute definition during encryption\n if the attribute value is missing."
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        metadata:
          title: metadata
          description: Common metadata
          $ref: '#/components/schemas/common.Metadata'
      title: Attribute
      required:
      - rule
      additionalProperties: false
    policy.ObligationValue:
      type: object
      properties:
        id:
          type: string
          title: id
        obligation:
          title: obligation
          $ref: '#/components/schemas/policy.Obligation'
        value:
          type: string
          title: value
        triggers:
          type: array
          items:
            $ref: '#/components/schemas/policy.ObligationTrigger'
          title: triggers
        fqn:
          type: string
          title: fqn
        metadata:
          title: metadata
          $ref: '#/components/schemas/common.Metadata'
      title: ObligationValue
      additionalProperties: false
    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
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    google.protobuf.BoolValue:
      type: boolean
      description: "Wrapper message for `bool`.\n\n The JSON representation for `BoolValue` is JSON `true` and `false`.\n\n Not recommended for use in new APIs, but still useful for legacy APIs and\n has no plan to be removed."
    policy.Action.StandardAction:
      type: string
      title: StandardAction
      enum:
      - STANDARD_ACTION_UNSPECIFIED
      - STANDARD_ACTION_DECRYPT
      - STANDARD_ACTION_TRANSMIT
    policy.SubjectConditionSet:
      type: object
      properties:
        id:
          type: string
          title: id
        namespace:
          title: namespace
          description: "the namespace containing this subject condition set\n possible this is empty in the case a subject condition set\n has not been migrated to a namespace."
          $ref: '#/components/schemas/policy.Namespace'
        subjectSets:
          type: array
          items:
            $ref: '#/components/schemas/policy.SubjectSet'
          title: subject_sets
          minItems: 1
        metadata:
          title: metadata
          $ref: '#/components/schemas/common.Metadata'
      title: SubjectConditionSet
      additionalProperties: false
      description: 'A container for multiple Subject Sets, each containing Condition Groups, each

        containing Conditions. Multiple Subject Sets in a SubjectConditionSet are

        evaluated with AND logic. As each Subject Mapping has only one Attribute

        Value, the SubjectConditionSet is reusable across multiple Subject Mappings /

        Attribute Values and is an independent unit.'
    policy.Condition:
      type: object
      properties:
        subjectExternalSelectorValue:
          type: string
          title: subject_external_selector_value
          description: "a selector for a field value on a flattened Entity Representation (such as\n from idP/LDAP)"
        operator:
          title: operator
          description: the evaluation operator of relation
          $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum'
        subjectExternalValues:
          type: array
          items:
            type: string
            minItems: 1
          title: subject_external_values
          minItems: 1
          description: "list of comparison values for the result of applying the\n subject_external_selector_value on a flattened Entity Representation\n (Subject), evaluated by the operator"
      title: Condition
      required:
      - subjectExternalSelectorValue
      - operator
      additionalProperties: false
      description: '*

        A Condition defines a rule of <the value at the flattened ''selector value''

        location> <operator> <subject external values>'
    policy.actions.UpdateActionRequest:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: Required
        name:
          type: string
          title: name
          maxLength: 253
          description: "Optional\n Custom actions only: replaces the existing action name\nAction name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.:\n```\nsize(this) == 0 || this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$')\n```\n\n"
        metadata:
          title: metadata
          description: Common metadata
          $ref: '#/components/schemas/common.MetadataMutable'
        metadataUpdateBehavior:
          title: metadata_update_behavior
          $ref: '#/components/schemas/common.MetadataUpdateEnum'
      title: UpdateActionRequest
      additionalProperties: false
      description: "Metadata may be updated for either Custom or Standard actions.\n Names may only be updated for Custom actions."
    policy.actions.DeleteActionResponse:
      type: object
      properties:
        action:
          title: action
          $ref: '#/components/schemas/policy.Action'
      title: DeleteActionResponse
      additionalProperties: false
    policy.SubjectMappingOperatorEnum:
      type: string
      title: SubjectMappingOperatorEnum
      enum:
      - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED
      - SUBJECT_MAPPING_OPERATOR_ENUM_IN
      - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN
      - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS
    policy.SubjectSet:
      type: object
      properties:
        conditionGroups:
          type: array
          items:
            $ref: '#/components/schemas/policy.ConditionGroup'
          title: condition_groups
          minItems: 1
          description: multiple Condition Groups are evaluated with AND logic
      title: SubjectSet
      additionalProperties: false
      description: A collection of Condition Groups
    policy.Namespace:
      type: object
      properties:
        id:
          type: string
          title: id
          description: generated uuid in database
        name:
          type: string
          title: name
          description: "used to partition Attribute Definitions, support by namespace AuthN and\n enable federation"
        fqn:
          type: string
          title: fqn
        active:
          title: active
          description: active by default until explicitly deactivated
          $ref: '#/components/schemas/google.protobuf.BoolValue'
        metadata:
          title: metadata
          $ref: '#/components/schemas/common.Metadata'
        grants:
          type: array
          items:
            $ref: '#/components/schemas/policy.KeyAccessServer'
          title: grants
          description: Deprecated KAS grants for the namespace. Use kas_keys instead.
        kasKeys:
          type: array
          items:
            $ref: '#/components/schemas/policy.SimpleKasKey'
          title: kas_keys
          description: Keys for the namespace
      title: Namespace
      additionalProperties: false
    policy.Obligation:
      type: object
      properties:
        id:
          type: string
          title: id
        namespace:
          title: namespace
          $ref: '#/components/schemas/policy.Namespace'
        name:
          type: string
          title: name
        values:
          type: array
          items:
            $ref: '#/components/schemas/policy.ObligationValue'
          title: values
        fqn:
          type: string
          title: fqn
        metadata:
          title: metadata
          $ref: '#/components/schemas/common.Metadata'
      title: Obligation
      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"
    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."
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
          - not_found
          enum:
          - canceled
          - unknown
          - invalid_argument
          - deadline_exceeded
          - not_found
          - already_exists
          - permission_denied
          - resource_exhausted
          - failed_precondition
          - aborted
          - out_of_range
          - unimplemented
          - internal
          - unavailable
          - data_loss
          - unauthenticated
          description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
        detail:
          $ref: '#/components/schemas/google.protobuf.Any'
      title: Connect Error
      additionalProperties: true
      description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation'
    policy.ConditionBooleanTypeEnum:
      type: string
      title: ConditionBooleanTypeEnum
      enum:
      - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED
      - CONDITION_BOOLEAN_TYPE_ENUM_AND
      - CONDITION_BOOLEAN_TYPE_ENUM_OR
    policy.actions.CreateActionRequest:
      type: object
      properties:
        name:
          type: string
          title: name
          maxLength: 253
          description: 'Required

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

            ```

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

            ```


            '
        namespaceId:
          type: string
          title: namespace_id
          format: uuid
          description: "Optional namespace ID for the custom action.\n If omitted, create targets legacy (namespace_id = NULL) behavior unless enforced by server config."
        namespaceFqn:
          type: string
          title: namespace_fqn
          minLength: 1
          format: uri
          description: "Optional namespace FQN for the custom action.\n If omitted, create targets legacy (namespace_id = NULL) behavior unless enforced by server config."
        metadata:
          title: metadata
          description: Optional
          $ref: '#/components/schemas/common.MetadataMutable'
      title: CreateActionRequest
      required:
      - name
      additionalProperties: false
      description: "Create a new Custom action name with optional metadata.\n Creation of Standard actions is not supported."
    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
    common.MetadataUpdateEnum:
      type: string
      title: MetadataUpdateEnum
      enum:
      - METADATA_UPDATE_ENUM_UNSPECIFIED
      - METADATA_UPDATE_ENUM_EXTEND
      - METADATA_UPDATE_ENUM_REPLACE
    policy.actions.ListActionsRequest:
      type: object
      properties:
        namespaceId:
          type: string
          title: namespace_id
          format: uuid
          description: ID of the namespace to scope results. If omitted, returns actions across namespaces.
        namespaceFqn:
          type: string
          title: namespace_fqn
          minLength: 1
          format: uri
          description: FQN of the namespace to scope results. If omitted, returns actions across namespaces.
        pagination:
          title: pagination
          description: Optional
          $ref: '#/components/schemas/policy.PageRequest'
      title: ListActionsRequest
      additionalProperties: false
    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.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
            tit

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