openapi: 3.1.0 info: title: Oracle REST Data Services (ORDS) REST AutoREST Roles API description: REST API for managing Oracle REST Data Services (ORDS) RESTful service definitions including modules, templates, handlers, privileges, roles, OAuth clients, and AutoREST-enabled objects. ORDS provides a mid-tier Java application that maps HTTP requests to database transactions, enabling RESTful access to Oracle Database resources. This specification covers the ORDS REST Services Management endpoints available through the Database API stable interface. version: '25.4' contact: name: Oracle APEX Support url: https://apex.oracle.com/community email: apex-info_us@oracle.com license: name: Oracle Technology Network License url: https://www.oracle.com/downloads/licenses/distribution-license.html servers: - url: https://{host}:{port}/ords/_/db-api/stable description: ORDS Database API stable endpoint variables: host: default: localhost description: Hostname of the ORDS instance port: default: '8443' description: Port number for the ORDS instance - url: https://{host}/ords/_/db-api/stable description: ORDS Database API stable endpoint (default port) variables: host: default: example.com description: Hostname of the ORDS instance security: - basicAuth: [] - oauth2: [] tags: - name: Roles description: ORDS role management. Roles group privileges for assignment to users and OAuth clients. paths: /ords/rest/roles/: get: operationId: listRoles summary: Get all ORDS roles description: Retrieves a paginated list of all ORDS roles defined in the current schema. tags: - Roles parameters: - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' responses: '200': description: Paginated list of ORDS roles content: application/json: schema: $ref: '#/components/schemas/ItemsCollection' post: operationId: createRole summary: Create an ORDS role description: Creates a new ORDS role that can be assigned to privileges and OAuth clients to control access to REST services. tags: - Roles requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RoleCreate' responses: '200': description: ORDS role created successfully content: application/json: schema: $ref: '#/components/schemas/ResourceItem' '400': description: No role_name parameter provided '409': description: A role with that name already exists /ords/rest/roles/{id}: get: operationId: getRole summary: Get an ORDS role description: Retrieves details of a specific ORDS role by its identifier. tags: - Roles parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: ORDS role details content: application/json: schema: $ref: '#/components/schemas/ResourceItem' '404': description: Role not found put: operationId: updateRole summary: Update an ORDS role description: Updates an existing ORDS role. tags: - Roles parameters: - $ref: '#/components/parameters/resourceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RoleCreate' responses: '200': description: ORDS role updated successfully content: application/json: schema: $ref: '#/components/schemas/ResourceItem' '404': description: Role not found delete: operationId: deleteRole summary: Delete an ORDS role description: Deletes a specific ORDS role. tags: - Roles parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: ORDS role deleted successfully '404': description: Role not found /ords/rest/roles/{id}/privileges/: get: operationId: listRolePrivileges summary: Get all ORDS privileges for a specific role description: Retrieves all privileges associated with a specific ORDS role. tags: - Roles parameters: - $ref: '#/components/parameters/resourceId' responses: '200': description: List of privileges for the role content: application/json: schema: $ref: '#/components/schemas/ItemsCollection' '404': description: Role not found components: parameters: offset: name: offset in: query required: false description: The index of the first item to return (0-based). Default is 0. schema: type: integer default: 0 minimum: 0 resourceId: name: id in: path required: true description: Unique identifier of the resource schema: type: integer limit: name: limit in: query required: false description: Maximum number of items to return per page. Default is 25. schema: type: integer default: 25 minimum: 1 maximum: 500 schemas: RoleCreate: type: object description: Request body for creating or updating an ORDS role required: - role_name properties: role_name: type: string description: Unique name of the ORDS role run_mode: type: string description: Set to 'codePreview' to return the PL/SQL code instead of executing it enum: - codePreview LinkRelation: type: object description: HATEOAS link relation describing a related resource or action required: - rel - href properties: rel: type: string description: Link relationship type (e.g., self, describedby, edit, collection) href: type: string description: URI of the related resource ResourceItem: type: object description: A single resource item with HATEOAS navigation links. Additional properties are included depending on the resource type. additionalProperties: true properties: links: type: array description: HATEOAS links for the resource items: $ref: '#/components/schemas/LinkRelation' ItemsCollection: type: object description: Paginated collection of resource items following the ORDS standard collection format properties: count: type: integer description: Total number of records in the current response page hasMore: type: boolean description: Indicates whether additional pages of results are available limit: type: integer description: The page size limit applied by the server offset: type: integer description: The starting index of items in this page items: type: array description: Array of resource items in this page items: $ref: '#/components/schemas/ResourceItem' links: type: array description: Pagination navigation links (first, next, prev, last) items: $ref: '#/components/schemas/LinkRelation' securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication using ORDS-enabled database schema credentials oauth2: type: oauth2 description: OAuth 2.0 authorization using ORDS OAuth client credentials or authorization code flow flows: clientCredentials: tokenUrl: /ords/{schema}/oauth/token scopes: {} authorizationCode: authorizationUrl: /ords/{schema}/oauth/auth tokenUrl: /ords/{schema}/oauth/token scopes: {}