openapi: 3.0.3 info: title: 'Laravel API Documentation' description: '' version: 1.0.0 servers: - url: 'http://localhost' tags: - name: Endpoints description: '' - name: 'GA4GH DRS API v1.2' description: "\nImplementation of the GA4GH Data Repository Service (DRS) API specification v1.2.\nThis API provides methods to retrieve data objects and their metadata, as well as\nservice information." paths: /api/user: get: summary: '' operationId: getApiUser description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - Endpoints security: [] /api/ga4gh/drs/v1/service-info: get: summary: 'Get Service Info' operationId: getServiceInfo description: "Returns information about the DRS service including the version, supported API versions,\nand other service-specific information." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: com.example.drs name: 'GA4GH DRS Demo Service' type: group: org.ga4gh artifact: drs version: 1.2.0 description: 'A demonstration implementation of the GA4GH DRS specification for genomic neuroscience datasets' organization: name: 'Genomic Neuroscience Research Center' url: 'https://example.com' version: 1.0.0 contactUrl: 'mailto:support@example.com' documentationUrl: 'https://example.com/docs' createdAt: '2025-01-01T00:00:00Z' updatedAt: '2025-01-01T00:00:00Z' environment: production properties: id: type: string example: com.example.drs name: type: string example: 'GA4GH DRS Demo Service' type: type: object properties: group: type: string example: org.ga4gh artifact: type: string example: drs version: type: string example: 1.2.0 description: type: string example: 'A demonstration implementation of the GA4GH DRS specification for genomic neuroscience datasets' organization: type: object properties: name: type: string example: 'Genomic Neuroscience Research Center' url: type: string example: 'https://example.com' version: type: string example: 1.0.0 contactUrl: type: string example: 'mailto:support@example.com' documentationUrl: type: string example: 'https://example.com/docs' createdAt: type: string example: '2025-01-01T00:00:00Z' updatedAt: type: string example: '2025-01-01T00:00:00Z' environment: type: string example: production tags: - 'GA4GH DRS API v1.2' security: [] /api/ga4gh/drs/v1/objects: get: summary: 'List Objects' operationId: listObjects description: "Returns a list of DRS objects. This is a custom endpoint not part of the core DRS spec\nbut useful for browsing available datasets." parameters: - in: query name: page description: 'The page number for pagination.' example: 1 required: false schema: type: integer description: 'The page number for pagination.' example: 1 nullable: false - in: query name: per_page description: 'Number of items per page.' example: 20 required: false schema: type: integer description: 'Number of items per page.' example: 20 nullable: false - in: query name: public_only description: 'Filter to only show public objects.' example: true required: false schema: type: boolean description: 'Filter to only show public objects.' example: true nullable: false responses: 200: description: '' content: application/json: schema: type: object example: data: - id: 550e8400-e29b-41d4-a716-446655440000 name: brain_scan_subject_001.nii size: 2147483648 mime_type: application/octet-stream description: 'fMRI scan of subject 001' created_time: '2025-01-01T10:00:00Z' meta: current_page: 1 per_page: 20 total: 50 properties: data: type: array example: - id: 550e8400-e29b-41d4-a716-446655440000 name: brain_scan_subject_001.nii size: 2147483648 mime_type: application/octet-stream description: 'fMRI scan of subject 001' created_time: '2025-01-01T10:00:00Z' items: type: object properties: id: type: string example: 550e8400-e29b-41d4-a716-446655440000 name: type: string example: brain_scan_subject_001.nii size: type: integer example: 2147483648 mime_type: type: string example: application/octet-stream description: type: string example: 'fMRI scan of subject 001' created_time: type: string example: '2025-01-01T10:00:00Z' meta: type: object properties: current_page: type: integer example: 1 per_page: type: integer example: 20 total: type: integer example: 50 tags: - 'GA4GH DRS API v1.2' security: [] '/api/ga4gh/drs/v1/objects/{object_id}': get: summary: 'Get Object' operationId: getObject description: "Returns object metadata and a list of access methods that can be used to fetch the object bytes.\nMethod is guaranteed to return a single object or an error." parameters: - in: query name: expand description: 'Optional. If false and the object_id refers to a bundle, the response will not include the contents array. If true and the object_id refers to a bundle, the response will include the contents array.' example: true required: false schema: type: boolean description: 'Optional. If false and the object_id refers to a bundle, the response will not include the contents array. If true and the object_id refers to a bundle, the response will include the contents array.' example: true nullable: false responses: 200: description: '' content: application/json: schema: type: object example: id: 550e8400-e29b-41d4-a716-446655440000 name: brain_scan_subject_001.nii self_uri: 'drs://example.com/550e8400-e29b-41d4-a716-446655440000' size: 2147483648 created_time: '2025-01-01T10:00:00Z' updated_time: '2025-01-01T10:30:00Z' version: '1.0' mime_type: application/octet-stream checksums: - type: md5 checksum: a1b2c3d4e5f6 - type: sha256 checksum: 1234567890abcdef access_methods: - type: https access_url: url: 'https://example.com/storage/brain_scan_subject_001.nii' description: 'fMRI scan of subject 001' aliases: - subject_001_fmri - scan_001 properties: id: type: string example: 550e8400-e29b-41d4-a716-446655440000 name: type: string example: brain_scan_subject_001.nii self_uri: type: string example: 'drs://example.com/550e8400-e29b-41d4-a716-446655440000' size: type: integer example: 2147483648 created_time: type: string example: '2025-01-01T10:00:00Z' updated_time: type: string example: '2025-01-01T10:30:00Z' version: type: string example: '1.0' mime_type: type: string example: application/octet-stream checksums: type: array example: - type: md5 checksum: a1b2c3d4e5f6 - type: sha256 checksum: 1234567890abcdef items: type: object properties: type: type: string example: md5 checksum: type: string example: a1b2c3d4e5f6 access_methods: type: array example: - type: https access_url: url: 'https://example.com/storage/brain_scan_subject_001.nii' items: type: object properties: type: type: string example: https access_url: type: object properties: url: type: string example: 'https://example.com/storage/brain_scan_subject_001.nii' description: type: string example: 'fMRI scan of subject 001' aliases: type: array example: - subject_001_fmri - scan_001 items: type: string 401: description: '' content: application/json: schema: type: object example: msg: 'Unauthorized - authentication is required' status_code: 401 properties: msg: type: string example: 'Unauthorized - authentication is required' status_code: type: integer example: 401 403: description: '' content: application/json: schema: type: object example: msg: 'Forbidden - you do not have permission to access this object' status_code: 403 properties: msg: type: string example: 'Forbidden - you do not have permission to access this object' status_code: type: integer example: 403 404: description: '' content: application/json: schema: type: object example: msg: 'The requested DRS object was not found' status_code: 404 properties: msg: type: string example: 'The requested DRS object was not found' status_code: type: integer example: 404 tags: - 'GA4GH DRS API v1.2' security: [] parameters: - in: path name: object_id description: 'The DRS object identifier.' example: 550e8400-e29b-41d4-a716-446655440000 required: true schema: type: string '/api/ga4gh/drs/v1/objects/{object_id}/access/{access_id}': get: summary: 'Get Access URL' operationId: getAccessURL description: "Returns a URL that can be used to fetch the bytes of a DRS object.\nThis method only works for objects with a single access method that supports direct download." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: url: 'https://example.com/storage/brain_scan_subject_001.nii?token=abc123&expires=1234567890' headers: Authorization: 'Bearer token123' properties: url: type: string example: 'https://example.com/storage/brain_scan_subject_001.nii?token=abc123&expires=1234567890' headers: type: object properties: Authorization: type: string example: 'Bearer token123' 401: description: '' content: application/json: schema: type: object example: msg: 'Unauthorized - authentication is required' status_code: 401 properties: msg: type: string example: 'Unauthorized - authentication is required' status_code: type: integer example: 401 403: description: '' content: application/json: schema: type: object example: msg: 'Forbidden - you do not have permission to access this object' status_code: 403 properties: msg: type: string example: 'Forbidden - you do not have permission to access this object' status_code: type: integer example: 403 404: description: '' content: application/json: schema: type: object example: msg: 'The requested DRS object or access method was not found' status_code: 404 properties: msg: type: string example: 'The requested DRS object or access method was not found' status_code: type: integer example: 404 tags: - 'GA4GH DRS API v1.2' security: [] parameters: - in: path name: object_id description: 'The DRS object identifier.' example: 550e8400-e29b-41d4-a716-446655440000 required: true schema: type: string - in: path name: access_id description: 'Optional parameter. Optional The access method ID if multiple access methods exist.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: architecto