openapi: 3.2.0 info: title: Fenergo Nebula Integration Core Persisted Storage API description: '**Integration Core API**: Integration Core BFF API allows to create and access integration flows and its'' executions.' version: '1.0' servers: - url: /integrationcore security: - Bearer: [] tags: - name: PersistedStorage paths: /api/storage: post: tags: - PersistedStorage summary: Search for persisted storage records based on the provided pager details description: 'Required permissions: Following permissions are required: IntegrationFlowsPersistedStorageAccess Required permissions: Following permissions are required: IntegrationFlowsPersistedStorageAccess' operationId: SearchRecords parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Peristed Storage Pager Details content: application/json: schema: allOf: - $ref: '#/components/schemas/Pager' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StorageObjectDtoPaginatedResponseServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/storage/upload: post: tags: - PersistedStorage summary: Creates a persisted storage metadata record in Processing state and returns a… description: 'Required permissions: Following permissions are required: IntegrationFlowsPersistedStorageAccess Required permissions: Following permissions are required: IntegrationFlowsPersistedStorageAccess' operationId: UploadDocument parameters: - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 requestBody: description: Upload request payload content: application/json: schema: allOf: - $ref: '#/components/schemas/UploadDocumentRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadDocumentResponseServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT /api/storage/record/{fileKey}: get: tags: - PersistedStorage summary: Gets a signed URL for a specific storage record description: 'Required permissions: At least one of the following permissions is required: IntegrationFlowsPersistedStorageGet, IntegrationFlowsPersistedStorageGetSensitive Required permissions: At least one of the following permissions is required: IntegrationFlowsPersistedStorageGet, IntegrationFlowsPersistedStorageGetSensitive' operationId: GetSignedUrl parameters: - name: fileKey in: path description: Peristed Storage File Key required: true schema: type: string - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found type: Error errorCode: Error Code '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT delete: tags: - PersistedStorage summary: Deletes an existing persisted storage record description: 'Required permissions: Following permissions are required: IntegrationFlowsPersistedStorageDelete Required permissions: Following permissions are required: IntegrationFlowsPersistedStorageDelete' operationId: DeleteRecord parameters: - name: fileKey in: path description: Peristed Storage File Key required: true schema: type: string - name: X-TENANT-ID in: header description: The UiD of the tenant representing organization required: true schema: type: string example: b11f8be3-f29b-4959-8964-956d4af7c468 responses: '202': description: Accepted '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '403': description: Access to resource is forbidden. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: 'Access denied. Following permissions are required: Permission1, Permission2' type: Forbidden errorCode: Error Code '500': description: Internal server exception. Please, contact your provider. content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: null messages: - message: Internal server exception. Please, contact your provider. type: Error errorCode: INTERNAL_SERVER_ERROR '410': description: Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers. content: application/json: schema: $ref: '#/components/schemas/StringServiceResponse' example: data: null messages: - message: This endpoint is obsolete and was terminated on yyyy-MM-dd type: Error errorCode: OBSOLETE_ENDPOINT components: schemas: ServiceResponse: type: object properties: data: type: - string - 'null' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false UploadDocumentRequest: type: object properties: fileIdentifier: type: - string - 'null' sensitivity: allOf: - $ref: '#/components/schemas/StorageTaskSensitivity' ttl: allOf: - $ref: '#/components/schemas/StorageTaskTTL' fileSize: type: integer format: int64 additionalProperties: false StorageTaskSensitivity: enum: - Sensitive - NotSensitive type: string PersistedStorageStatus: enum: - Processing - Uploaded - Infected - Error type: string UploadDocumentResponseServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/UploadDocumentResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false Pager: required: - first type: object properties: first: type: integer format: int32 after: type: - string - 'null' additionalProperties: false ServiceResponseMessage: type: object properties: message: type: - string - 'null' type: type: - string - 'null' errorCode: type: - string - 'null' additionalProperties: false UploadDocumentResponse: type: object properties: preSignedUrl: type: - string - 'null' fileIdentifier: type: - string - 'null' tags: type: - string - 'null' additionalProperties: false StorageObjectDtoPaginatedResponse: type: object properties: items: type: - array - 'null' items: $ref: '#/components/schemas/StorageObjectDto' nextToken: type: - string - 'null' hasNextPage: type: boolean additionalProperties: false StorageObjectDtoPaginatedResponseServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/StorageObjectDtoPaginatedResponse' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false StorageTaskTTL: enum: - OneWeek - OneMonth type: string StorageObjectDto: type: object properties: fileIdentifier: type: - string - 'null' fileSize: type: integer format: int64 sensitivity: allOf: - $ref: '#/components/schemas/StorageTaskSensitivity' lastModified: type: string format: date-time expirationDate: type: - string - 'null' format: date-time executionId: type: - string - 'null' format: uuid status: allOf: - $ref: '#/components/schemas/PersistedStorageStatus' additionalProperties: false ObjectServiceResponse: type: object properties: data: {} messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false StringServiceResponse: type: object properties: data: type: - string - 'null' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false securitySchemes: Bearer: type: apiKey description: Please insert JWT with Bearer into field name: Authorization in: header