openapi: 3.2.0 info: title: Fenergo Nebula Narrative Query Compliance Narratives API description: Narrative Query API is part of FenX eco-system to manage Entity Narratives Data. All the operations require valid access token obtained from Identity service. version: '1.0' servers: - url: /narrativequery security: - Bearer: [] tags: - name: ComplianceNarratives paths: /api/compliance/search: post: tags: - ComplianceNarratives summary: Search Compliance Narratives description: 'This method will return a list of Narrative models. Required permissions: Following permissions are required: NarrativesComplianceAccess' operationId: SearchComplianceNarratives 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: ServiceRequest with the details to search content: application/json: schema: allOf: - $ref: '#/components/schemas/SearchNarrativeRequestDtoServiceRequest' responses: '200': description: An list of instances of the Fenergo.Nebula.Narrative.Common.Application.Dto.NarrativeDto class representing the Narrative metadata. content: application/json: schema: $ref: '#/components/schemas/NarrativeDtoIEnumerableServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '500': description: An exception occurred while processing the command '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 '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/compliance/{narrativeId}: get: tags: - ComplianceNarratives summary: Get Compliance Narrative by Id description: 'This method will return Compliance Narrative model Required permissions: Following permissions are required: NarrativesComplianceAccess' operationId: GetComplianceNarrativeById parameters: - name: narrativeId in: path description: Narrative ID to search required: true schema: type: string format: uuid - 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: An instance of the Fenergo.Nebula.Narrative.Common.Application.Dto.NarrativeDto class representing the Narrative metadata. content: application/json: schema: $ref: '#/components/schemas/NarrativeDtoServiceResponse' '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. The Narrative with provided ID not found type: Error errorCode: Error Code '500': description: An exception occurred while processing the command '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 '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/compliance/{entityId}/pre-sign-urls: post: tags: - ComplianceNarratives summary: Get pre-sign URLs for a file identifiers This endpoint is intended for use with… description: 'Returns URLs for each file identifier Required permissions: Following permissions are required: NarrativesComplianceAccess' operationId: GetPreSignComplianceUrlForFileIdentifiers parameters: - name: entityId in: path description: Entity id required: true schema: type: string format: uuid - 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: File identifiers request content: application/json: schema: allOf: - $ref: '#/components/schemas/GetPreSignUrlsRequestDtoServiceRequest' responses: '200': description: Success. Instance of property is returned content: application/json: schema: $ref: '#/components/schemas/GetPreSignUrlsResponseDtoServiceResponse' '403': description: Forbidden. User has no access to reveal property content: application/json: schema: $ref: '#/components/schemas/ServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not Found. Entity or PropertyName with given id/name does not exist type: Error errorCode: Error Code '400': description: Bad request. The request has missing/invalid values content: application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '401': description: User is not authorized to perform this request content: application/json: example: message: Unauthorized '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 GetPreSignUrlsRequestDto: type: object properties: isRootContent: type: boolean fileIdentifiers: type: - array - 'null' items: type: string additionalProperties: false SearchNarrativeRequestDto: type: object properties: entityId: type: string format: uuid searchTerm: type: - string - 'null' additionalProperties: false SearchNarrativeRequestDtoServiceRequest: required: - data type: object properties: data: allOf: - $ref: '#/components/schemas/SearchNarrativeRequestDto' additionalProperties: false ValidationErrorModel: type: object properties: propertyName: type: - string - 'null' errorMessage: type: - string - 'null' attemptedValue: {} errorCode: type: - string - 'null' additionalProperties: false NarrativeDtoIEnumerableServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/NarrativeDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false GetPreSignUrlsRequestDtoServiceRequest: required: - data type: object properties: data: allOf: - $ref: '#/components/schemas/GetPreSignUrlsRequestDto' additionalProperties: false NarrativeDto: type: object properties: id: type: string format: uuid entityId: type: string format: uuid type: allOf: - $ref: '#/components/schemas/NarrativeType' text: type: - string - 'null' fileKey: type: - string - 'null' lastUpdatedBy: type: - string - 'null' lastUpdatedDate: type: string format: date-time additionalProperties: false GetPreSignUrlsResponseDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/GetPreSignUrlsResponseDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false ServiceResponseMessage: type: object properties: message: type: - string - 'null' type: type: - string - 'null' errorCode: type: - string - 'null' additionalProperties: false NarrativeType: enum: - Business - Compliance type: string ObjectServiceResponse: type: object properties: data: {} messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false NarrativeDtoServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/NarrativeDto' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false GetPreSignUrlsResponseDto: type: object properties: isRootContent: type: boolean urls: type: - object - 'null' additionalProperties: type: string additionalProperties: false ValidationErrorModelListServiceResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/ValidationErrorModel' messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false example: data: - propertyName: data errorMessage: Data is required attemptedValue: '' errorCode: NotNullValidator messages: - message: Data is required type: Error errorCode: Error Code 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