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

# Get Reference

> Gets a single OCIReference

An <em>OCIReference</em> represents a relationship between an OCITag and an
OCIArtifact.

When attempting to match a customer's container image to a known
OCIArtifact, we look up an OCITag that matches a particular digest. For
mutable OCITags, that digest association, however, changes over time. Until
OCIReference was introduced, we were only storing the first known
digest for these mutable tags, which ended up introducing a lot of stale
data into the digest classification process: the classifiers were not able
to find OCITags that match newer digests for these mutable tags and
therefore less accurate classifiers like ruleset and deduction classifier
needed to try and classify the cluster inventory record.

For OCITags that are mutable -- e.g. "latest" or "stable" or "v1" -- there
can be many digests that an OCITag has previously pointed to.
Previously-referred digests for an OCITag are made available through the
OCIReference object model. You may be wondering why we don't have an
<b>References</b> field on OCITag that just returns the digests that have been
previously associated with this OCITag. The reason for that is because the
list of previously-known digest associations can be very long (it's
unbounded) and so having this information in a separately-fetched object
model that can be paginated/controlled seemed like a better design.




## OpenAPI

````yaml get /ocireferences/{reference}/
openapi: 3.1.0
info:
  description: >

    The Chkk Artifact Register API exposes information about the artifacts in a

    customer's clusters.


    Data models exposed in the Chkk Artifact Register API include:


    * <b>Organization</b>: the top-level object that models a Chkk customer.

    * <b>Account</b>: a container for resource ownership within an Organization.

    * <b>KubePlatform</b>: describes things like the cloud infrastructure
    provider
      and the control plane provider.
    * <b>KubeCluster</b>: a single cluster provisioned by a
      KubePlatform.
    * <b>KubeClusterScan</b>: a single Chkk scan of a cluster.

    * <b>KubeClusterResource</b>: a single Resource
      (Deployment, DaemonSet or StatefulSet) from a KubeClusterScan.
    * <b>KubeClusterResourceContainer</b>: a single container record in a
      KubeClusterResource.
    * <b>Project</b>: software that provides some functionality.

    * <b>ProjectReleaseSeries</b>: a single release series for a Project.

    * <b>ProjectRelease</b>: a single release for a Project.

    * <b>ProjectVersionSet</b>: a configuration, layout or structure of a
    Project
      that is consistent for a range of ProjectReleases.
    * <b>ProjectComponent</b>: a separate binary, daemon, or subsystem of a
      Project.
    * <b>Package</b>: a named bundle of software that is bundled (and
      identified) in the format of a specific PackageSystem.
    * <b>PackageRelease</b>: a single release for a Package.

    * <b>PackageVersionSet</b>: a configuration, layout or structure of a
    Package
      that is consistent for a range of PackageReleases.
    * <b>OCIRepository</b>: a single namespace within an OCI Registry.

    * <b>OCIArtifact</b>: a single OCI Artifact (manifest) that describes an OCI
      Image or other OCI Artifact.
    * <b>OCITag</b>: a name that points to a unique OCIArtifact within an
      OCIRepository.
    * <b>OCIReference</b>: a relationship between an OCITag and an OCIArtifact.

    * <b>RiskSignature</b>: the source of a <em>potential</em>
      availability or operational risk for a customer.
    * <b>Risk</b>: a <em>detected</em> RiskSignature for an Account.

    * <b>UpgradeTemplate</b>: detailed instructions for upgrading or migrating a
      KubeCluster or an installed part of a KubeCluster. 
  title: Chkk API
  version: '1.0'
servers: []
security: []
paths:
  /ocireferences/{reference}/:
    get:
      tags:
        - OCI
      summary: Get Reference
      description: >
        Gets a single OCIReference


        An <em>OCIReference</em> represents a relationship between an OCITag and
        an

        OCIArtifact.


        When attempting to match a customer's container image to a known

        OCIArtifact, we look up an OCITag that matches a particular digest. For

        mutable OCITags, that digest association, however, changes over time.
        Until

        OCIReference was introduced, we were only storing the first known

        digest for these mutable tags, which ended up introducing a lot of stale

        data into the digest classification process: the classifiers were not
        able

        to find OCITags that match newer digests for these mutable tags and

        therefore less accurate classifiers like ruleset and deduction
        classifier

        needed to try and classify the cluster inventory record.


        For OCITags that are mutable -- e.g. "latest" or "stable" or "v1" --
        there

        can be many digests that an OCITag has previously pointed to.

        Previously-referred digests for an OCITag are made available through the

        OCIReference object model. You may be wondering why we don't have an

        <b>References</b> field on OCITag that just returns the digests that
        have been

        previously associated with this OCITag. The reason for that is because
        the

        list of previously-known digest associations can be very long (it's

        unbounded) and so having this information in a separately-fetched object

        model that can be paginated/controlled seemed like a better design.
      operationId: oci-reference-get
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OCIReference'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
components:
  schemas:
    OCIReference:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://example.com/schemas/OCIReference.json
          format: uri
          readOnly: true
          type: string
        artifact:
          description: >-
            Artifact is the ID (the digest) of the OCIArtifact this OCIReference
            pointed to.
          examples:
            - ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
          type: string
        created_by:
          description: user who created the record.
          type: string
        created_on:
          description: timestamp of when the record was created.
          format: date-time
          type: string
        last_modified_by:
          description: user who last modified the record.
          type: string
        last_modified_on:
          description: timestamp of when the record was last modified.
          format: date-time
          type: string
        tag:
          description: >-
            Tag is the *full* URL-like ID of the OCITag that this OCIReference
            points to.
          examples:
            - docker.io/cert-manager/cert-manager:latest
          type: string
      required:
        - tag
        - artifact
        - created_by
        - created_on
        - last_modified_by
        - last_modified_on
      type: object
    ErrorModel:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://example.com/schemas/ErrorModel.json
          format: uri
          readOnly: true
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object

````