Opal Security resources API

Operations related to resources

OpenAPI Specification

opal-security-resources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: hello@opal.dev
    name: Opal Team
    url: https://www.opal.dev/
  description: The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
  title: Opal access-rules resources API
  version: '1.0'
servers:
- description: Production
  url: https://api.opal.dev/v1
tags:
- name: resources
  description: Operations related to resources
paths:
  /resources:
    get:
      summary: Get resources
      description: Returns a list of resources for your organization.
      operationId: getResources
      parameters:
      - description: The pagination cursor value.
        example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
        explode: true
        in: query
        name: cursor
        required: false
        schema:
          type: string
        style: form
      - description: Number of results to return per page. Default is 200.
        example: 200
        explode: true
        in: query
        name: page_size
        required: false
        schema:
          type: integer
          maximum: 1000
        style: form
      - description: The resource type to filter by. Required when remote_id is provided.
        example: AWS_IAM_ROLE
        explode: true
        in: query
        name: resource_type_filter
        required: false
        schema:
          $ref: '#/components/schemas/ResourceTypeEnum'
        style: form
      - description: The resource ids to filter by.
        example:
        - 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        - 1b978423-db0a-4037-a4cf-f79c60cb67b3
        explode: false
        in: query
        name: resource_ids
        required: false
        schema:
          items:
            example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
            format: uuid
            type: string
          type: array
        style: form
      - description: Resource name.
        example: example-name
        explode: true
        in: query
        name: resource_name
        required: false
        schema:
          type: string
        style: form
      - description: The parent resource id to filter by.
        example:
        - 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: query
        name: parent_resource_id
        required: false
        schema:
          format: uuid
          type: string
        style: form
      - description: The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.
        example:
        - 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: query
        name: ancestor_resource_id
        required: false
        schema:
          format: uuid
          type: string
        style: form
      - description: Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided.
        in: query
        name: remote_id
        required: false
        schema:
          type: string
        style: form
      - description: The IDs of the tags to filter by. Returns only resources that have any of these tags applied.
        in: query
        name: tag_ids
        required: false
        schema:
          type: array
          items:
            format: uuid
            type: string
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResourcesList'
          description: One page worth resources associated with your organization.
      security:
      - BearerAuth: []
      tags:
      - resources
    put:
      description: Bulk updates a list of resources.
      operationId: updateResources
      requestBody:
        description: Resources to be updated
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateResourceInfoList'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResourceInfoList'
          description: The resulting updated resource infos.
      security:
      - BearerAuth: []
      tags:
      - resources
    post:
      description: Creates a resource. See [here](https://docs.opal.dev/reference/end-system-objects) for details about importing resources.
      operationId: createResource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateResourceInfo'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: The resource just created.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}:
    get:
      summary: Get resource by ID
      description: Retrieves a resource.
      operationId: get_resource
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          description: The requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
      security:
      - BearerAuth: []
      tags:
      - resources
    delete:
      description: Deletes a resource.
      operationId: delete_resource
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          description: The resource was successfully deleted.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/message-channels:
    get:
      description: Gets the list of audit message channels attached to a resource.
      operationId: get_resource_message_channels
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageChannelList'
          description: The audit message channels attached to the resource.
      security:
      - BearerAuth: []
      tags:
      - resources
    put:
      description: Sets the list of audit message channels attached to a resource.
      operationId: set_resource_message_channels
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageChannelIDList'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
                  format: uuid
                  type: string
                type: array
          description: The updated audit message channel IDs for the resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/visibility:
    get:
      description: Gets the visibility of this resource.
      operationId: get_resource_visibility
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisibilityInfo'
          description: The visibility info of this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
    put:
      description: Sets the visibility of this resource.
      operationId: set_resource_visibility
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VisibilityInfo'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisibilityInfo'
          description: The visibility info of this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/reviewers:
    get:
      description: Gets the list of owner IDs of the reviewers for a resource.
      operationId: get_resource_reviewers
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
                  format: uuid
                  type: string
                type: array
          description: The IDs of owners that are reviewers for this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
    put:
      description: Sets the list of reviewers for a resource.
      operationId: set_resource_reviewers
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerIDList'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
                  format: uuid
                  type: string
                type: array
          description: The updated IDs of owners that are reviewers for this resource
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/reviewer-stages:
    get:
      description: Gets the list reviewer stages for a resource.
      operationId: get_resource_reviewer_stages
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                description: A list of reviewer stages.
                items:
                  $ref: '#/components/schemas/ReviewerStage'
                type: array
          description: The reviewer stages for this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
    put:
      description: Sets the list of reviewer stages for a resource.
      operationId: set_resource_reviewer_stages
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerStageList'
      responses:
        '200':
          content:
            application/json:
              schema:
                description: A list of reviewer stages.
                items:
                  $ref: '#/components/schemas/ReviewerStage'
                type: array
          description: The updated reviewer stages for this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/non-human-identities:
    get:
      description: Gets the list of non-human identities with access to this resource.
      operationId: get_resource_nhis
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: Limit the number of results returned.
        example: 200
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessList'
          description: List of non-human identities with access to this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/users:
    get:
      summary: Get resource users
      description: Gets the list of users for this resource.
      operationId: get_resource_users
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: Limit the number of results returned.
        example: 200
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceAccessUserList'
          description: List of users with access to this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/non-human-identities/{non_human_identity_id}:
    post:
      description: Gives a non-human identity access to this resource.
      operationId: add_resource_nhi
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The resource ID of the non-human identity to add.
        example: f92aa855-cea9-4814-b9d8-f2a60d3e4a06
        explode: false
        in: path
        name: non_human_identity_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: false
        content:
          application/json:
            schema:
              example:
                duration_minutes: 60
                access_level_remote_id: roles/cloudsql.instanceUser
              properties:
                duration_minutes:
                  description: The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.
                  example: 60
                  type: integer
                  maximum: 525960
                access_level_remote_id:
                  description: The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used.
                  example: roles/cloudsql.instanceUser
                  type: string
              required:
              - duration_minutes
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceNHI'
          description: Details about the access that the non-human identity was granted to the resource.
      security:
      - BearerAuth: []
      tags:
      - resources
    delete:
      description: Removes a non-human identity's direct access from this resource.
      operationId: delete_resource_nhi
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The resource ID of the non-human identity to remove from this resource.
        example: f92aa855-cea9-4814-b9d8-f2a60d3e4a06
        explode: false
        in: path
        name: non_human_identity_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
        example: roles/cloudsql.instanceUser
        explode: true
        in: query
        name: access_level_remote_id
        required: false
        schema:
          type: string
        style: form
      responses:
        '200':
          description: This non-human identity's access was successfully removed from this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/users/{user_id}:
    post:
      description: Adds a user to this resource.
      operationId: add_resource_user
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of the user to add.
        example: f92aa855-cea9-4814-b9d8-f2a60d3e4a06
        explode: false
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.
        example: 60
        explode: true
        in: query
        name: duration_minutes
        required: false
        schema:
          type: integer
          maximum: 525960
        style: form
        deprecated: true
      - description: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
        example: arn:aws:iam::590304332660:role/AdministratorAccess
        explode: true
        in: query
        name: access_level_remote_id
        required: false
        schema:
          type: string
        style: form
        deprecated: true
      requestBody:
        required: false
        content:
          application/json:
            schema:
              example:
                duration_minutes: 60
                access_level_remote_id: arn:aws:iam::590304332660:role/AdministratorAccess
              properties:
                duration_minutes:
                  description: The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.
                  example: 60
                  type: integer
                  maximum: 525960
                access_level_remote_id:
                  description: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
                  example: arn:aws:iam::590304332660:role/AdministratorAccess
                  type: string
              required:
              - duration_minutes
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUser'
          description: The ResourceUser that was created.
      security:
      - BearerAuth: []
      tags:
      - resources
    put:
      description: Updates a user's access level or duration on this resource.
      operationId: update_resource_user
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of the user whose access is being updated.
        example: f92aa855-cea9-4814-b9d8-f2a60d3e4a06
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              example:
                duration_minutes: 60
                access_level_remote_id: arn:aws:iam::590304332660:role/AdministratorAccess
              properties:
                duration_minutes:
                  description: The updated duration for which the resource can be accessed (in minutes). Use 0 for indefinite.
                  type: integer
                  maximum: 525960
                  example: 120
                access_level_remote_id:
                  description: The updated remote ID of the access level granted to this user.
                  type: string
                  example: arn:aws:iam::590304332660:role/ReadOnlyAccess
              required:
              - duration_minutes
      responses:
        '200':
          description: The ResourceUser was successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUser'
      security:
      - BearerAuth: []
      tags:
      - resources
    delete:
      description: Removes a user's direct access from this resource.
      operationId: delete_resource_user
      parameters:
      - description: The ID of the resource.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of a user to remove from this resource.
        example: f92aa855-cea9-4814-b9d8-f2a60d3e4a06
        explode: false
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
        example: arn:aws:iam::590304332660:role/AdministratorAccess
        explode: true
        in: query
        name: access_level_remote_id
        required: false
        schema:
          type: string
        style: form
      responses:
        '200':
          description: This user's access was successfully removed from this resource.
      security:
      - BearerAuth: []
      tags:
      - resources
    get:
      summary: Get resource user
      description: Returns information about a specific user's access to a resource.
      operationId: getResourceUser
      parameters:
      - description: The ID of the resource.
        example: 32acc112-21ff-4669-91c2-21e27683eaa1
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of the user.
        example: 29827fb8-f2dd-4e80-9576-28e31e9934ac
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The pagination cursor value.
        example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
        explode: true
        in: query
        name: cursor
        required: false
        schema:
          type: string
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResourceUser'
                  cursor:
                    type: string
                    description: Pagination cursor for the next page of results
                    example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
                  total_count:
                    type: integer
                    description: Total number of results
                    example: 120
                required:
                - data
          description: List of ResourceUser records for the user's access to the resource.
        '404':
          description: Resource or user not found.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resource-user-access-status/{resource_id}/{user_id}:
    get:
      deprecated: true
      description: Get user's access status to a resource.
      operationId: resource_user_access_status_retrieve
      parameters:
      - description: The ID of the resource.
        example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
        explode: false
        in: path
        name: resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of the user.
        example: 29827fb8-f2dd-4e80-9576-28e31e9934ac
        explode: false
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used.
        example: arn:aws:iam::590304332660:role/AdministratorAccess
        explode: true
        in: query
        name: access_level_remote_id
        required: false
        schema:
          type: string
        style: form
      - description: The pagination cursor value.
        example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
        explode: true
        in: query
        name: cursor
        required: false
        schema:
          type: string
        style: form
      - description: Number of results to return per page. Default is 200.
        example: 200
        explode: true
        in: query
        name: page_size
        required: false
        schema:
          type: integer
          maximum: 1000
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUserAccessStatus'
          description: The access status reflecting the user's access to the resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/tags:
    get:
      description: Returns all tags applied to the resource.
      operationId: get_resource_tags
      parameters:
      - description: The ID of the resource whose tags to return.
        name: resource_id
        example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
        explode: false
        in: path
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TagsList'
          description: The tags applied to the resource.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/scoped-role-permissions:
    get:
      description: Returns all the scoped role permissions that apply to the given resource. Only OPAL_SCOPED_ROLE resource type supports this field.
      operationId: get_resource_scoped_role_permissions
      parameters:
      - description: The ID of the resource whose scoped role permissions belong to.
        name: resource_id
        example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
        explode: false
        in: path
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopedRolePermissionList'
          description: The role permissions that this Opal Scoped Role has.
      security:
      - BearerAuth: []
      tags:
      - resources
    put:
      description: Sets all the scoped role permissions on an OPAL_SCOPED_ROLE resource.
      operationId: set_resource_scoped_role_permissions
      parameters:
      - description: The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.
        name: resource_id
        example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
        explode: false
        in: path
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScopedRolePermissionList'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopedRolePermissionList'
          description: The role permissions that this Opal Scoped Role has.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/users/{user_id}:
    get:
      description: Gets the list of resources for this user.
      operationId: get_user_resources
      parameters:
      - description: The ID of the user.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: user_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: Limit the number of results returned.
        example: 200
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      - description: The pagination cursor value.
        example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
        explode: true
        in: query
        name: cursor
        required: false
        schema:
          type: string
        style: form
      - description: Include user's access to unmanaged resources.
        example: false
        explode: true
        in: query
        name: include_unmanaged
        required: false
        schema:
          type: boolean
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceAccessUserList'
          description: List of resources user has access to.
      security:
      - BearerAuth: []
      tags:
      - resources
  /resources/{resource_id}/groups:
    get:
      description: Returns a list of groups that grant access to the resource
      operationId: get_resource_groups
      parameters:
   

# --- truncated at 32 KB (122 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/opal-security/refs/heads/main/openapi/opal-security-resources-api-openapi.yml