> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit final evidence for one artifact and get the bundle's updated state

> Records `content` as the final `Result` for `evidenceId` on this bundle/policy, recomputes classification if the artifact affects it, then returns the same response shape as `POST /rpc/compute-policy`. Use this — not `POST /results` — when you also want the recomputed classification and the bundle's current results, approvals, and findings back in the same response.
`evidenceId` comes from the policy's evidence definition (`GET /policies/{id}`, `stages[].evidenceSet[].id`). `bundleId` comes from `POST /bundles`. Returns `409` if the bundle is read-only or has `evidenceRestricted` set — either case rejects before any write happens.
`content` is a map of `artifactId` → value; the required shape depends on the artifact's `artifactType`/`details.type` (read via `GET /policies/{id}`):
| artifactType | details.type | content shape |
|---|---|---|
| `input` | `textinput` / `textarea` | `string` |
| `input` | `numeric` | `number` |
| `input` | `date` | `string` |
| `input` | `radio` / `select` | `string`, must equal one of `details.options[].value` |
| `input` | `checkbox` / `multiselect` | `string[]`, each must equal one of `details.options[].value` |
| `guidance` | — | no content needed; `details.text` is display-only |
| `metadata` | `file` | `{"commit": string, "files": [{"name","path","sizeLabel"}, ...]}` |
| `metadata` | `modelmetric` | `[{"<metricName>": "<value>"}, ...]`, one entry per row, a value for every metric named in `details.metrics[].name` |
| `metadata` | `monitorcheck` | not submitted here — populated via `POST /rpc/analyze-monitor-model` |
| `policyScriptedCheck` | — | `{"jobId": string, "parameters"?: {...}, "noDetails": boolean}` |
For `policyScriptedCheck`: run the job described in `details` via `POST /api/jobs/v1/jobs` (Domino's public Jobs API) first, then submit its `jobId` here. That API's field names differ from `details`: send `details.command` as `runCommand`, `details.environmentId` as `environmentId`, `details.hardwareTierId` as `hardwareTier`; `projectId` is required and comes from `GET /bundles/{id}` (`.projectId`), not from `details`. `runCommand` is a shell or Python file that must already exist in the project's file system (e.g. `app.py`). If `details` defines named `parameters[]`, `command` contains literal placeholders `${<param.name>}` for each — `runCommand` is `details.command` with each `${<param.name>}` placeholder substituted by its actual value; the Jobs API only ever sees this fully-substituted string, not the parameter names/values separately. Then include the same values under `parameters` (keyed by name) in this content, as a record of what was actually run. Set `noDetails` to `true` only if you ran an ad-hoc command with no defined `parameters`; set it to `false` when running the check's configured `command`/`parameters` as-is. Job output isn't included in this content — fetch it separately via `GET /api/jobs/beta/jobs/{jobId}`.
`command`, `environmentId`, and `hardwareTierId` are all optional on `details` — a policy can define a scripted check without any of them. If `command` is absent, there's no fixed command to run; supply your own `runCommand` in the `POST /api/jobs/v1/jobs` call — it still must be a shell or Python file that already exists in the project's file system, the same as a configured `command`. If `environmentId`/`hardwareTierId` are absent, you can omit them from that call too: it defaults `environmentId` to the project's default environment and `hardwareTier` to the project's default hardware tier. To use a specific one instead, list the options yourself first — `GET /api/environments/beta/environments` or `GET /api/hardwaretiers/v1/hardwaretiers` — and pass the chosen ID explicitly.
Related:
- POST /results (submit a result without recomputing classification)
- GET /policies/{id} (read each artifact's `details` to determine its content shape before submitting)



## OpenAPI

````yaml /api-specs/cloud/public-api.json post /api/governance/v1/rpc/submit-result-to-policy
openapi: 3.0.3
info:
  title: Domino Public API
  description: Reference for Domino's public REST API endpoints.
  version: 6.4.0
  x-catalog-key: nucleus
servers:
  - url: https://mycluster.domino.tech
    description: >-
      Replace 'mycluster.domino.tech' with your Domino cluster hostname. For
      Domino Cloud customers, that is `your-subdomain`.domino.tech (e.g.,
      acme.domino.tech). For self-hosted deployments, it is the hostname you
      reach the Domino UI at.
security: []
tags:
  - name: Projects
  - name: Project templates
  - name: Workspaces
  - name: Jobs
  - name: HPC Jobs
  - name: Environments
  - name: Hardware Tiers
  - name: Datasets
  - name: Data Sources
  - name: GenAI
  - name: AI Systems
  - name: Apps
  - name: App versions
  - name: App instances
  - name: Model APIs
  - name: Registered models
  - name: Model deployment
  - name: Extensions
  - name: Cost and billing
  - name: Users and organizations
  - name: Service accounts
  - name: Personal Access Tokens
  - name: Personal Access Tokens (admin)
  - name: Audit Trail
  - name: Custom metrics
  - name: PPM
  - name: Model Monitoring models
  - name: Model Monitoring drift and quality
  - name: Model Monitoring settings
  - name: Model Monitoring authentication
  - name: Governance bundles
  - name: Governance policies
  - name: Governance evidence and results
  - name: Governance operations
  - name: NetApp Volumes
  - name: NetApp Volumes snapshots
  - name: NetApp Volumes filesystems
  - name: NetApp Volumes transfers
  - name: Tags
  - name: Properties
externalDocs:
  description: OpenAPI
  url: https://swagger.io/resources/open-api/
paths:
  /api/governance/v1/rpc/submit-result-to-policy:
    post:
      tags:
        - Governance operations
      summary: >-
        Submit final evidence for one artifact and get the bundle's updated
        state
      description: >-
        Records `content` as the final `Result` for `evidenceId` on this
        bundle/policy, recomputes classification if the artifact affects it,
        then returns the same response shape as `POST /rpc/compute-policy`. Use
        this — not `POST /results` — when you also want the recomputed
        classification and the bundle's current results, approvals, and findings
        back in the same response.

        `evidenceId` comes from the policy's evidence definition (`GET
        /policies/{id}`, `stages[].evidenceSet[].id`). `bundleId` comes from
        `POST /bundles`. Returns `409` if the bundle is read-only or has
        `evidenceRestricted` set — either case rejects before any write happens.

        `content` is a map of `artifactId` → value; the required shape depends
        on the artifact's `artifactType`/`details.type` (read via `GET
        /policies/{id}`):

        | artifactType | details.type | content shape |

        |---|---|---|

        | `input` | `textinput` / `textarea` | `string` |

        | `input` | `numeric` | `number` |

        | `input` | `date` | `string` |

        | `input` | `radio` / `select` | `string`, must equal one of
        `details.options[].value` |

        | `input` | `checkbox` / `multiselect` | `string[]`, each must equal one
        of `details.options[].value` |

        | `guidance` | — | no content needed; `details.text` is display-only |

        | `metadata` | `file` | `{"commit": string, "files":
        [{"name","path","sizeLabel"}, ...]}` |

        | `metadata` | `modelmetric` | `[{"<metricName>": "<value>"}, ...]`, one
        entry per row, a value for every metric named in
        `details.metrics[].name` |

        | `metadata` | `monitorcheck` | not submitted here — populated via `POST
        /rpc/analyze-monitor-model` |

        | `policyScriptedCheck` | — | `{"jobId": string, "parameters"?: {...},
        "noDetails": boolean}` |

        For `policyScriptedCheck`: run the job described in `details` via `POST
        /api/jobs/v1/jobs` (Domino's public Jobs API) first, then submit its
        `jobId` here. That API's field names differ from `details`: send
        `details.command` as `runCommand`, `details.environmentId` as
        `environmentId`, `details.hardwareTierId` as `hardwareTier`; `projectId`
        is required and comes from `GET /bundles/{id}` (`.projectId`), not from
        `details`. `runCommand` is a shell or Python file that must already
        exist in the project's file system (e.g. `app.py`). If `details` defines
        named `parameters[]`, `command` contains literal placeholders
        `${<param.name>}` for each — `runCommand` is `details.command` with each
        `${<param.name>}` placeholder substituted by its actual value; the Jobs
        API only ever sees this fully-substituted string, not the parameter
        names/values separately. Then include the same values under `parameters`
        (keyed by name) in this content, as a record of what was actually run.
        Set `noDetails` to `true` only if you ran an ad-hoc command with no
        defined `parameters`; set it to `false` when running the check's
        configured `command`/`parameters` as-is. Job output isn't included in
        this content — fetch it separately via `GET
        /api/jobs/beta/jobs/{jobId}`.

        `command`, `environmentId`, and `hardwareTierId` are all optional on
        `details` — a policy can define a scripted check without any of them. If
        `command` is absent, there's no fixed command to run; supply your own
        `runCommand` in the `POST /api/jobs/v1/jobs` call — it still must be a
        shell or Python file that already exists in the project's file system,
        the same as a configured `command`. If `environmentId`/`hardwareTierId`
        are absent, you can omit them from that call too: it defaults
        `environmentId` to the project's default environment and `hardwareTier`
        to the project's default hardware tier. To use a specific one instead,
        list the options yourself first — `GET
        /api/environments/beta/environments` or `GET
        /api/hardwaretiers/v1/hardwaretiers` — and pass the chosen ID
        explicitly.

        Related:

        - POST /results (submit a result without recomputing classification)

        - GET /policies/{id} (read each artifact's `details` to determine its
        content shape before submitting)
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/rai-guardrails-service_server.SubmitResultToPolicy
        description: Request for submitting result and computing policy
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/rai-guardrails-service_guardrails.ComputedPolicy
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rai-guardrails-service_server.HTTPError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rai-guardrails-service_server.HTTPError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rai-guardrails-service_server.HTTPError'
        '423':
          description: Locked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rai-guardrails-service_server.HTTPError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rai-guardrails-service_server.HTTPError'
components:
  schemas:
    rai-guardrails-service_server.SubmitResultToPolicy:
      type: object
      required:
        - bundleId
        - content
        - evidenceId
        - policyId
      properties:
        bundleId:
          type: string
        content:
          type: object
        evidenceId:
          type: string
        policyId:
          type: string
    rai-guardrails-service_guardrails.ComputedPolicy:
      type: object
      properties:
        approvals:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.ComputedApproval
        bundle:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.Bundle'
        bundleStages:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.BundleStage'
        commentsInfo:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.CommentsInfo'
        drafts:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.ArtifactDraft
        findingsInfo:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.FindingsInfo'
        isUserApprover:
          description: >-
            Indicates if the current user is an approver for any of the
            approvals in this bundle policy
          type: boolean
        policy:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.Policy'
        results:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.ArtifactResult
    rai-guardrails-service_server.HTTPError:
      type: object
      properties:
        code:
          description: >-
            Code is a stable machine-readable error identifier; absent on most
            errors.
          allOf:
            - $ref: '#/components/schemas/rai-guardrails-service_guardrails.ErrorCode'
        message:
          type: string
    rai-guardrails-service_guardrails.ComputedApproval:
      type: object
      properties:
        approvers:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.Approver'
        bundleId:
          type: string
        id:
          type: string
        isUserApprover:
          type: boolean
        name:
          type: string
        policyId:
          type: string
        policyVersionId:
          type: string
        revalidation:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.Revalidation'
        stageApprovalId:
          type: string
        status:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.ApprovalStatus
        taskId:
          type: string
        updatedAt:
          type: string
        updatedBy:
          type: object
    rai-guardrails-service_guardrails.Bundle:
      type: object
      required:
        - id
        - state
      properties:
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.Attachment'
        classificationValue:
          description: The classification value of the primary policy
          type: string
        commentsCount:
          type: integer
        createdAt:
          type: string
        createdBy:
          type: object
        currentStageInfo:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.CurrentStageInfo
        enforcedPolicyIds:
          description: Policy IDs mandated by a PolicyEnforcer; these cannot be deactivated
          type: array
          items:
            type: string
        evidenceRestricted:
          type: boolean
        gates:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.Gate'
        hasRevalidationSchedule:
          description: Whether the bundle has an active revalidation schedule
          type: boolean
        id:
          type: string
        name:
          type: string
        policies:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.BundlePolicy
        policyId:
          description: The ID of the primary policy
          type: string
        policyName:
          type: string
        policyVersion:
          description: The version of the primary policy
          type: string
        policyVersionId:
          description: The version ID of the primary policy
          type: string
        projectId:
          type: string
        projectName:
          type: string
        projectOwner:
          type: string
        stage:
          description: The stage of the primary policy
          type: string
        stageApprovals:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.StageApproval
        stageAssignee:
          description: The assignee to the stage of the primary policy
          allOf:
            - $ref: >-
                #/components/schemas/rai-guardrails-service_guardrails.BundleStageAssignee
        stages:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.BundleStage'
        state:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.BundleState'
    rai-guardrails-service_guardrails.BundleStage:
      type: object
      properties:
        assignedAt:
          type: string
        assignee:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.BundleStageAssignee
        bundleId:
          type: string
        stage:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.Stage'
        stageId:
          type: string
    rai-guardrails-service_guardrails.CommentsInfo:
      type: object
      properties:
        approvalCommentsCountMap:
          additionalProperties:
            type: integer
          type: object
        artifactCommentsCountMap:
          additionalProperties:
            type: integer
          type: object
        bundleCommentsCount:
          type: integer
    rai-guardrails-service_guardrails.ArtifactDraft:
      type: object
      properties:
        artifactContent: {}
        artifactId:
          type: string
        bundleId:
          type: string
        evidenceId:
          type: string
        id:
          type: string
        updatedAt:
          type: string
        userId:
          type: string
    rai-guardrails-service_guardrails.FindingsInfo:
      type: object
      properties:
        approvalFindingsCountMap:
          additionalProperties:
            type: integer
          type: object
        approvalFindingsMap:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: >-
                #/components/schemas/rai-guardrails-service_guardrails.FindingInfo
        artifactFindingsCountMap:
          additionalProperties:
            type: integer
          type: object
        bundleFindingsCount:
          type: integer
    rai-guardrails-service_guardrails.Policy:
      type: object
      properties:
        allowProjectApprovers:
          type: boolean
        archived:
          type: boolean
        classificationArtifactMap:
          type: object
          additionalProperties:
            type: string
        classificationRule:
          type: string
        createdAt:
          type: string
        createdBy:
          type: object
        description:
          type: string
        enforceSequentialOrder:
          type: boolean
        gates:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.PolicyGate'
        id:
          type: string
        labels:
          type: object
          x-deprecated: 'true'
        name:
          type: string
        parentId:
          type: string
        simpleClassificationQuestionId:
          type: string
        stages:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.Stage'
        status:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.PolicyStatus'
        taxonomyProperties:
          description: populated by TaxonomyService
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.TaxonomyPropertyValue
        taxonomyTags:
          description: populated by TaxonomyService
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.TaxonomyTag'
        updatedAt:
          type: string
        updatedBy:
          type: object
    rai-guardrails-service_guardrails.ArtifactResult:
      type: object
      properties:
        artifactContent: {}
        artifactId:
          type: string
        bundleId:
          type: string
        createdAt:
          type: string
        createdBy:
          type: object
        evidenceId:
          type: string
        id:
          type: string
        isLatest:
          type: boolean
    rai-guardrails-service_guardrails.ErrorCode:
      type: string
      enum:
        - BUNDLE_REQUIRES_POLICY
      x-enum-varnames:
        - CodeBundleRequiresPolicy
    rai-guardrails-service_guardrails.Approver:
      type: object
      required:
        - editable
        - id
        - name
        - showByDefault
      properties:
        editable:
          type: boolean
        fromOrganizationUserId:
          type: string
        id:
          type: string
        isOrganizationUser:
          type: boolean
        name:
          type: string
        showByDefault:
          type: boolean
    rai-guardrails-service_guardrails.Revalidation:
      type: object
      properties:
        createdAt:
          type: string
        createdBy:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.User'
        firstApprovedAt:
          type: string
        isOverride:
          type: boolean
        nextDeadlineAt:
          type: string
        revalidationConfig:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.RevalidationConfig
        revalidationPeriodStartsAt:
          type: string
        updatedAt:
          type: string
        updatedBy:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.User'
    rai-guardrails-service_guardrails.ApprovalStatus:
      type: string
      enum:
        - PendingSubmission
        - PendingReview
        - Approved
        - ConditionallyApproved
        - PendingExpiration
        - Expired
      x-enum-varnames:
        - PendingSubmission
        - PendingReview
        - Approved
        - ConditionallyApproved
        - PendingExpiration
        - Expired
    rai-guardrails-service_guardrails.Attachment:
      type: object
      properties:
        approvalTimelineMap:
          type: object
          additionalProperties:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.ApprovalTimelineInfo
        createdAt:
          type: string
        createdBy:
          type: object
        id:
          type: string
        identifier:
          type: object
        source:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.AttachmentSource
        type:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.AttachmentType
    rai-guardrails-service_guardrails.CurrentStageInfo:
      type: object
      properties:
        openFindingsCount:
          type: integer
        pendingApprovalsCount:
          type: integer
        status:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.StageStatus'
    rai-guardrails-service_guardrails.Gate:
      type: object
      properties:
        approvals:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.GateApprovalSummary
        bundleId:
          type: string
        id:
          type: string
        isOpen:
          type: boolean
        name:
          type: string
        policyGateId:
          type: string
        policyId:
          type: string
        policyVersionId:
          type: string
        reason:
          type: string
        resources:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.RuleDefinition
    rai-guardrails-service_guardrails.BundlePolicy:
      type: object
      properties:
        allowProjectApprovers:
          type: boolean
        bundleId:
          type: string
        classificationValue:
          type: string
        compliantToCurrentStage:
          type: boolean
        createdAt:
          type: string
        deactivatedAt:
          type: string
        enforceSequentialOrder:
          type: boolean
        hasRevalidationSchedule:
          type: boolean
        isLatestVersion:
          type: boolean
        isPolicyArchived:
          type: boolean
        policyId:
          type: string
        policyName:
          type: string
        policyVersion:
          type: string
        policyVersionId:
          type: string
        stage:
          type: string
        stageAssignee:
          description: The assignee to the stage of this bundle policy
          allOf:
            - $ref: >-
                #/components/schemas/rai-guardrails-service_guardrails.BundleStageAssignee
        upgradeRequired:
          type: boolean
    rai-guardrails-service_guardrails.StageApproval:
      type: object
      properties:
        approvers:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.Approver'
        evidence:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.Evidence'
        id:
          type: string
        name:
          type: string
        policyEntityId:
          type: string
        revalidationConfig:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.RevalidationConfig
    rai-guardrails-service_guardrails.BundleStageAssignee:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: string
        name:
          type: string
    rai-guardrails-service_guardrails.BundleState:
      type: string
      enum:
        - Active
        - Archived
        - Complete
      x-enum-varnames:
        - ActiveState
        - ArchivedState
        - CompleteState
    rai-guardrails-service_guardrails.Stage:
      type: object
      properties:
        approvals:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.StageApproval
        evidenceSet:
          type: array
          items:
            $ref: '#/components/schemas/rai-guardrails-service_guardrails.Evidence'
        id:
          type: string
        name:
          type: string
        notifyOnTransition:
          type: boolean
        policyEntityId:
          type: string
        policyVersionId:
          type: string
    rai-guardrails-service_guardrails.FindingInfo:
      type: object
      properties:
        id:
          type: string
        status:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.FindingStatus'
    rai-guardrails-service_guardrails.PolicyGate:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        policyId:
          type: string
        policyVersionId:
          type: string
        resources:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.RuleDefinition
    rai-guardrails-service_guardrails.PolicyStatus:
      type: string
      enum:
        - Draft
        - Published
        - Archived
      x-enum-varnames:
        - PolicyDraft
        - PolicyPublished
        - PolicyArchived
    rai-guardrails-service_guardrails.TaxonomyPropertyValue:
      type: object
      properties:
        description:
          type: string
        groupName:
          type: string
        propertyId:
          type: string
        propertyLabel:
          type: string
        type:
          type: string
        value:
          type: string
        values:
          items:
            type: string
          type: array
    rai-guardrails-service_guardrails.TaxonomyTag:
      type: object
      properties:
        description:
          type: string
        id:
          type: string
        label:
          type: string
        namespaceId:
          type: string
        namespaceLabel:
          type: string
    rai-guardrails-service_guardrails.User:
      type: object
      properties:
        firstName:
          type: string
        id:
          type: string
        lastName:
          type: string
        userName:
          type: string
    rai-guardrails-service_guardrails.RevalidationConfig:
      type: object
      required:
        - openWindowDaysBefore
        - recurring
        - type
      properties:
        openWindowDaysBefore:
          type: integer
          minimum: 1
        recurring:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.Recurring'
        type:
          enum:
            - absolute
            - relative
          allOf:
            - $ref: >-
                #/components/schemas/rai-guardrails-service_guardrails.RevalidationType
    rai-guardrails-service_guardrails.ApprovalTimelineInfo:
      type: object
      properties:
        approvalStatus:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.ApprovalStatus
        timelineStatus:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.ApprovalTimelineStatus
        updatedAt:
          type: string
    rai-guardrails-service_guardrails.AttachmentSource:
      type: string
      enum:
        - AUTO
        - MANUAL
      x-enum-varnames:
        - AttachmentSourceAuto
        - AttachmentSourceManual
    rai-guardrails-service_guardrails.AttachmentType:
      type: string
      enum:
        - ModelVersion
        - Report
        - DatasetSnapshotFile
        - Endpoint
        - NetAppVolumeSnapshotFile
        - FlowArtifact
        - FlowArtifactFile
      x-enum-varnames:
        - ModelVersion
        - Report
        - DatasetSnapshotFile
        - Endpoint
        - NetAppVolumeSnapshotFile
        - FlowArtifact
        - FlowArtifactFile
    rai-guardrails-service_guardrails.StageStatus:
      type: string
      enum:
        - NotStarted
        - InProgress
        - Done
      x-enum-varnames:
        - NotStartedStageStatus
        - InProgressStageStatus
        - DoneStageStatus
    rai-guardrails-service_guardrails.GateApprovalSummary:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        stageApprovalId:
          type: string
        status:
          $ref: >-
            #/components/schemas/rai-guardrails-service_guardrails.ApprovalStatus
    rai-guardrails-service_guardrails.RuleDefinition:
      type: object
      required:
        - action
      properties:
        action:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.RuleAction'
        failOpen:
          type: boolean
        parameters:
          type: object
    rai-guardrails-service_guardrails.Evidence:
      type: object
      properties:
        artifacts:
          type: array
          items:
            $ref: >-
              #/components/schemas/rai-guardrails-service_guardrails.EvidenceArtifact
        createdAt:
          type: string
        description:
          type: string
        externalId:
          type: string
        id:
          type: string
        name:
          type: string
        policyId:
          type: string
        policyVersionId:
          type: string
        scope:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.EvidenceScope'
        visible:
          description: >-
            allows true, false or nil values (if nil, FE can decide to show
            everything)
          type: boolean
    rai-guardrails-service_guardrails.FindingStatus:
      type: string
      enum:
        - ToDo
        - InProgress
        - InReview
        - Done
        - WontDo
      x-enum-varnames:
        - ToDo
        - InProgress
        - InReview
        - Done
        - WontDo
    rai-guardrails-service_guardrails.Recurring:
      type: object
      required:
        - every
        - unit
      properties:
        every:
          type: integer
          minimum: 1
        startDate:
          type: string
        unit:
          enum:
            - month
            - year
          allOf:
            - $ref: >-
                #/components/schemas/rai-guardrails-service_guardrails.RevalidationUnit
    rai-guardrails-service_guardrails.RevalidationType:
      type: string
      enum:
        - absolute
        - relative
      x-enum-varnames:
        - RevalidationTypeAbsolute
        - RevalidationTypeRelative
    rai-guardrails-service_guardrails.ApprovalTimelineStatus:
      type: string
      enum:
        - Valid
        - Invalid
      x-enum-varnames:
        - Valid
        - Invalid
    rai-guardrails-service_guardrails.RuleAction:
      type: string
      enum:
        - Deploy
        - CreateApp
        - CreateEndpoint
      x-enum-varnames:
        - Deploy
        - CreateApp
        - CreateEndpoint
    rai-guardrails-service_guardrails.EvidenceArtifact:
      type: object
      properties:
        artifactType:
          $ref: '#/components/schemas/rai-guardrails-service_guardrails.ArtifactType'
        details:
          type: object
        id:
          type: string
        policyEntityId:
          type: string
        required:
          type: boolean
        visibilityRule:
          type: string
        visible:
          type: boolean
    rai-guardrails-service_guardrails.EvidenceScope:
      type: string
      enum:
        - Global
        - Local
      x-enum-varnames:
        - Global
        - Local
    rai-guardrails-service_guardrails.RevalidationUnit:
      type: string
      enum:
        - month
        - year
      x-enum-varnames:
        - RevalidationUnitMonth
        - RevalidationUnitYear
    rai-guardrails-service_guardrails.ArtifactType:
      type: string
      enum:
        - input
        - guidance
        - policyScriptedCheck
        - metadata
      x-enum-varnames:
        - Input
        - Guidance
        - AutomatedJob
        - Metadata

````

## Related topics

- [Submit a final result for an artifact (does not recompute classification)](/api-reference/governance-evidence-and-results/submit-a-final-result-for-an-artifact-does-not-recompute-classification.md)
- [Read back the latest submitted result(s) for a bundle](/api-reference/governance-evidence-and-results/read-back-the-latest-submitted-results-for-a-bundle.md)
- [Get a policy's full structure, including evidence and the content shape each artifact expects](/api-reference/governance-policies/get-a-policys-full-structure-including-evidence-and-the-content-shape-each-artifact-expects.md)
- [Get a bundle's evidence, results, and approval progress against one of its applied policies](/api-reference/governance-operations/get-a-bundles-evidence-results-and-approval-progress-against-one-of-its-applied-policies.md)
