openapi: 3.2.0 info: title: Hyperlabs.Web Media Files API version: '1.0' servers: - url: /api tags: - name: MediaFiles paths: /v1/media-files/{fileName}: get: tags: - MediaFiles parameters: - name: fileName in: path required: true schema: title: String type: string responses: '200': description: OK /v1/admin/media-files: get: tags: - MediaFiles parameters: - name: CategoryIds in: query schema: title: Guid[] type: array items: title: Guid type: string format: uuid - name: FileTypeCodes in: query schema: title: FileTypeCode[] type: array items: $ref: '#/components/schemas/Hyperlabs.Domain.MediaFiles.Models.FileTypeCode' - name: CreatedDateFrom in: query schema: title: Nullable`1 type: string format: date-time - name: CreatedDateTo in: query schema: title: Nullable`1 type: string format: date-time - name: Search in: query schema: title: String type: string - name: SortBy in: query schema: $ref: '#/components/schemas/Hyperlabs.Domain.MediaFiles.Models.MediaFilesQuerySortParameter' - name: SortDesc in: query schema: title: Boolean type: boolean - name: PageNo in: query schema: title: Int32 type: integer format: int32 - name: PageSize in: query schema: title: Int32 type: integer format: int32 responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] post: tags: - MediaFiles requestBody: content: application/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CreateMediaFileDto' text/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CreateMediaFileDto' application/*+json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CreateMediaFileDto' responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] /v1/admin/media-files/{id}: get: tags: - MediaFiles parameters: - name: id in: path required: true schema: title: Guid type: string format: uuid responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] put: tags: - MediaFiles parameters: - name: id in: path required: true schema: title: Guid type: string format: uuid requestBody: content: application/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ChangeMediaFileDto' text/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ChangeMediaFileDto' application/*+json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ChangeMediaFileDto' responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] delete: tags: - MediaFiles parameters: - name: id in: path required: true schema: title: Guid type: string format: uuid responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] /v1/admin/media-files/{id}/content: post: tags: - MediaFiles parameters: - name: id in: path required: true schema: title: Guid type: string format: uuid requestBody: content: application/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ContentDto' text/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ContentDto' application/*+json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ContentDto' responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] /v1/admin/media-files/{id}/upload: post: tags: - MediaFiles parameters: - name: id in: path required: true schema: title: Guid type: string format: uuid requestBody: content: multipart/form-data: schema: type: object properties: file: title: IFormFile type: string format: binary encoding: file: style: form responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] /v1/admin/media-files/{id}/upload/chunk: post: tags: - MediaFiles parameters: - name: id in: path required: true schema: title: Guid type: string format: uuid requestBody: content: multipart/form-data: schema: type: object properties: FileName: title: String type: string ChunkIndex: title: Int32 type: integer format: int32 Chunk: title: IFormFile type: string format: binary encoding: FileName: style: form ChunkIndex: style: form Chunk: style: form responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] /v1/admin/media-files/{id}/upload/complete: post: tags: - MediaFiles parameters: - name: id in: path required: true schema: title: Guid type: string format: uuid requestBody: content: application/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CompleteChunkedUploadDto' text/json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CompleteChunkedUploadDto' application/*+json: schema: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CompleteChunkedUploadDto' responses: '200': description: OK '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] components: schemas: Hyperlabs.Domain.MediaFiles.Models.FileTypeCode: title: FileTypeCode enum: - 1 - 2 - 3 - 4 - 5 type: integer format: int32 Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CreateMediaFileDto: title: CreateMediaFileDto type: object properties: name: title: String type: - string - 'null' description: title: String type: - string - 'null' fileType: $ref: '#/components/schemas/Hyperlabs.Domain.MediaFiles.Models.FileTypeCode' categoryId: title: Nullable`1 type: - string - 'null' format: uuid content: $ref: '#/components/schemas/Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ContentDto' additionalProperties: false Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ContentDto: title: ContentDto type: object properties: fileUrl: title: String type: - string - 'null' fileName: title: String type: - string - 'null' additionalProperties: false Hyperlabs.Web.Areas.Admin.Models.MediaFiles.ChangeMediaFileDto: title: ChangeMediaFileDto type: object properties: name: title: String type: - string - 'null' description: title: String type: - string - 'null' fileType: $ref: '#/components/schemas/Hyperlabs.Domain.MediaFiles.Models.FileTypeCode' categoryId: title: Nullable`1 type: - string - 'null' format: uuid additionalProperties: false Hyperlabs.Web.Areas.Admin.Models.MediaFiles.CompleteChunkedUploadDto: title: CompleteChunkedUploadDto type: object properties: fileName: title: String type: - string - 'null' contentType: title: String type: - string - 'null' totalChunks: title: Int32 type: integer format: int32 additionalProperties: false Hyperlabs.Domain.MediaFiles.Models.MediaFilesQuerySortParameter: title: MediaFilesQuerySortParameter enum: - 1 type: integer format: int32 securitySchemes: oauth2: type: apiKey description: 'Standard Authorization header using the Bearer scheme. Example: "Bearer {token}"' name: Authorization in: header