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

# Get

> Returns a resource class by its global id. Requires the `https://devx.{environment}.oleria.io/read` scope.



## OpenAPI

````yaml /developer-docs/api-reference/oleria-public-api-1.0.0.yaml get /v1/resource-classes/{id}
openapi: 3.0.3
info:
  title: Oleria Public API
  version: 1.0.0
  description: >-
    REST API for Oleria's identity and access data. Each resource is a
    collection exposing list and get operations; responses return the complete
    object. Where Oleria can change what it reports, the change is a method on
    the same resource: disabling an account is `POST /v1/accounts/{id}/disable`,
    and membership is a sub-resource asserted with `PUT` and removed with
    `DELETE`. Those changes are applied in the source application
    asynchronously: each returns a job under `/v1/action-jobs` that reports the
    outcome for every target it affected, and whether Oleria's own data reflects
    it yet. Authenticate with OAuth 2.0 client credentials and send the access
    token as `Authorization: Bearer <token>`.
servers:
  - url: https://devx.{environment}.oleria.io
    description: Oleria API server.
    variables:
      environment:
        default: prod
        description: >-
          Your Oleria deployment, for example `acme` for
          `https://devx.acme.oleria.io`. Substitute it in the OAuth scope names
          as well, since OpenAPI applies a server variable to the URL only and
          the scopes are published with the placeholder still in them.
security: []
paths:
  /v1/resource-classes/{id}:
    get:
      tags:
        - Resource classes
      summary: Get
      description: >-
        Returns a resource class by its global id. Requires the
        `https://devx.{environment}.oleria.io/read` scope.
      operationId: GetResourceClass
      parameters:
        - name: id
          in: path
          description: Global id of the resource class.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The resource class.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Oleria_ResourceClass'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - oauth2:
            - https://devx.{environment}.oleria.io/read
components:
  schemas:
    Oleria_ResourceClass:
      type: object
      description: >
        An Oleria ResourceClass object represents a class of resource instances
        within an application (e.g. Repositories in GitHub, Opportunities in
        Salesforce)
      allOf:
        - $ref: '#/components/schemas/ResourceClass'
        - $ref: '#/components/schemas/Oleria_ResourceClassGlobalIdentifiers'
        - $ref: '#/components/schemas/Oleria_ResourceClassEnrichedInformation'
        - $ref: '#/components/schemas/Oleria_ResourceClassAnalyticsInformation'
        - $ref: '#/components/schemas/Oleria_ResourceClassSystemOfRecordInformation'
        - required:
            - oleriaObjectMetadata
          type: object
          properties:
            oleriaObjectMetadata:
              $ref: '#/components/schemas/Oleria_ObjectMetadata'
    ResourceClass:
      required:
        - id
        - name
        - objectMetadata
      type: object
      properties:
        displayName:
          minLength: 1
          type: string
          description: >-
            The display name of the resource class (typically used to represent
            the resource class in a user experience)
          example: Repositories
        id:
          $ref: '#/components/schemas/LocallyUniqueResourceClassId'
        name:
          minLength: 1
          type: string
          description: >-
            The name of the resource class (this may be different from
            displayName)
          example: repo
        objectMetadata:
          $ref: '#/components/schemas/ObjectMetadata'
        pageUri:
          type: string
          description: The URI of the resource entity
          format: uri
          example: /lightning/r/Opportunity
        sourceTag:
          type: string
          description: >-
            An application-specific tag representing the resource class
            information data source
          example: GitHub
      description: >-
        A ResourceClass object represents a class of resource instances within
        an application e.g. Opportunities in Salesforce. It is
        application-defined whether or not resource instances are expressly
        grouped under Resource objects or if they are represented directly as
        ResourceInstance objects with relevant ResourceInstance-specific nesting
    Oleria_ResourceClassGlobalIdentifiers:
      required:
        - globalId
      type: object
      properties:
        globalId:
          type: string
      description: >
        Global identifiers translated from ResourceClass local identifiers to be
        composed on Oleria ResourceClass
    Oleria_ResourceClassEnrichedInformation:
      type: object
      description: >
        Enriched information derived from a combination of ResourceClass data,
        additional identity signals
    Oleria_ResourceClassAnalyticsInformation:
      type: object
      properties:
        analyticsResourceInstanceCount:
          type: integer
          nullable: true
          format: int64
          description: >
            Cached count of Oleria ResourceInstance objects belonging to this
            Oleria ResourceClass.
      description: |
        Analytics information cached on the Oleria ResourceClass object
    Oleria_ResourceClassSystemOfRecordInformation:
      type: object
      properties:
        sorPrimaryStewardEmail:
          type: string
      description: >
        System of Record information associated with a resource class and
        managed in Oleria
    Oleria_ObjectMetadata:
      type: object
      properties:
        enrichmentVersion:
          type: string
        generatedTime:
          type: string
          format: date-time
      description: >
        object metadata supersets object metadata with platform enrichment
        provenance — the enrichment version and the time the record was
        generated
    ErrorResponse:
      type: object
      description: >-
        Error envelope. `code` is a stable machine-readable identifier;
        `message` is human-readable.
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Stable, machine-readable error code (SCREAMING_SNAKE_CASE).
          example: NOT_FOUND
        details:
          type: object
          description: Optional free-form context for debugging.
          additionalProperties: true
        message:
          type: string
          description: Human-readable description of the error.
          example: No resource with the given id.
    LocallyUniqueResourceClassId:
      type: string
      description: >
        An identifier (unique to the integrated application) for a
        [ResourceClass](#/components/schemas/ResourceClass) object represented
        in the Oleria system. Oleria converts these identifiers to global ids so
        they can be unique in the context of the global system graph. Ideally
        this id is a straightforward derivation of the class name      
      example: class:repo (GitHub based on resources)
    ObjectMetadata:
      required:
        - ApplicationInstanceId
        - GeneratedTime
      type: object
      properties:
        ApplicationInstanceId:
          type: string
        GeneratedTime:
          type: string
          format: date-time
        Profile:
          $ref: '#/components/schemas/SchemaProfile'
        ObjectOrRelationshipType:
          type: string
      description: >
        The _ObjectMetadata_ structure defines metadata that applies to every
        object and relationship, and is usually managed by the system that
        receives the data
    SchemaProfile:
      type: string
      enum:
        - Account
        - Membership
        - Governance
        - Risk
        - Access
        - Detection
  responses:
    BadRequest:
      description: The request was malformed, for example an invalid cursor or page size.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: BAD_REQUEST
            message: The request was malformed.
    Unauthorized:
      description: Missing or invalid authentication token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: UNAUTHORIZED
            message: Missing or invalid authentication token.
    Forbidden:
      description: The token lacks the scope required for this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: FORBIDDEN
            message: The token lacks the required scope.
    NotFound:
      description: No resource exists with the given id.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: NOT_FOUND
            message: No resource with the given id.
    TooManyRequests:
      description: Rate limit exceeded. Retry after the interval in the Retry-After header.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 0
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: TOO_MANY_REQUESTS
            message: Rate limit exceeded. Retry after the specified interval.
    InternalError:
      description: An unexpected error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: INTERNAL_ERROR
            message: An unexpected error occurred.
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth 2.0 client-credentials flow. Request an access token from the
        token endpoint and send it as `Authorization: Bearer <token>`.
      flows:
        clientCredentials:
          tokenUrl: https://auth.prod.oleria.io/oauth/token
          scopes:
            https://devx.{environment}.oleria.io/delete: Irreversibly destroy an object in the source system.
            https://devx.{environment}.oleria.io/read: Read identity and access data, and the jobs that change it.
            https://devx.{environment}.oleria.io/write: >-
              Make reversible changes: grant, enable, assign, revoke and remove
              access.

````