openapi: 3.2.0 info: title: Fenergo Temporary Document Model API version: '1.0' description: 'Operations tagged TemporaryDocumentModel across 2 of this provider''s published API definitions: fenergo-documentmanagementcommand-v1-0-openapi.json, fenergo-documentmanagementcommand-v2-0-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: /documentmanagementcommand security: - Bearer: [] tags: - name: TemporaryDocumentModel paths: /api/temporarydocumentmanagement: post: tags: - TemporaryDocumentModel summary: Save temporary document metadata and generate the URL to upload the file for… description: 'This method will create temporary document model metadata and generate a signed URL to allow the user to upload temporary file directly in the AWS S3 bucket. When multiple document Requirements need to be fulfilled Important: The returned `SignedUrlToUpload` is a presigned S3 URL that includes the `x-amz-tagging` header in its signature. When uploading the file via HTTP PUT to this URL, the caller must include the following header exactly as shown: ```x-amz-tagging: TTL=enabled``` Omitting this header or providing a different value will result in a `403 SignatureDoesNotMatch` error from S3, because the header is part of the presigned URL''s HMAC signature. Required permissions: At least one of the following permissions is required: DocumentManagementCreate, DocumentManagementEdit' operationId: CreateTemporaryDocumentMultipleRequirements 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: The upload multiple document requirements request content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequestServiceRequest' text/json: schema: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequestServiceRequest' application/*+json: schema: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequestServiceRequest' responses: '202': description: An instance of the Fenergo.Nebula.DocumentManagement.Command.Application.DTO.CreateSignedUrlToUploadFileMultipleRequirementsResponse class with some metadata that represent the files uploaded content: text/plain: schema: $ref: '#/components/schemas/CreateSignedUrlToUploadFileMultipleRequirementsResponseServiceResponse' application/json: schema: $ref: '#/components/schemas/CreateSignedUrlToUploadFileMultipleRequirementsResponseServiceResponse' text/json: schema: $ref: '#/components/schemas/CreateSignedUrlToUploadFileMultipleRequirementsResponseServiceResponse' '400': description: Bad request. The request has missing/invalid values content: text/plain: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' text/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not found. Document model or Document Requirement model with given id does not exist 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 servers: - url: /documentmanagementcommand /api/v2/temporarydocumentmanagement: post: tags: - TemporaryDocumentModel summary: Save temporary document metadata and generate the URL to upload the file for… description: 'This method will create temporary document model metadata and generate a signed URL to allow the user to upload temporary file directly in the AWS S3 bucket. When multiple document Requirements need to be fulfilled Important: The returned `SignedUrlToUpload` is a presigned S3 URL that includes the `x-amz-tagging` header in its signature. When uploading the file via HTTP PUT to this URL, the caller must include the following header exactly as shown: ```x-amz-tagging: TTL=enabled``` Omitting this header or providing a different value will result in a `403 SignatureDoesNotMatch` error from S3, because the header is part of the presigned URL''s HMAC signature. Required permissions: At least one of the following permissions is required: DocumentManagementCreate, DocumentManagementEdit' operationId: postApiV2Temporarydocumentmanagement 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: The upload multiple document requirements request content: application/json: schema: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequestServiceRequest' text/json: schema: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequestServiceRequest' application/*+json: schema: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequestServiceRequest' responses: '202': description: An instance of the Fenergo.Nebula.DocumentManagement.Command.Application.DTO.CreateSignedUrlToUploadFileMultipleRequirementsResponse class with some metadata that represent the files uploaded content: text/plain: schema: $ref: '#/components/schemas/CreateSignedUrlToUploadFileMultipleRequirementsResponseServiceResponse' application/json: schema: $ref: '#/components/schemas/CreateSignedUrlToUploadFileMultipleRequirementsResponseServiceResponse' text/json: schema: $ref: '#/components/schemas/CreateSignedUrlToUploadFileMultipleRequirementsResponseServiceResponse' '400': description: Bad request. The request has missing/invalid values content: text/plain: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' application/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' text/json: schema: $ref: '#/components/schemas/ValidationErrorModelListServiceResponse' '404': description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ObjectServiceResponse' example: data: {} messages: - message: Not found. Document model or Document Requirement model with given id does not exist 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 x-operation-id-source: normalized x-operation-id-original: CreateTemporaryDocumentMultipleRequirements servers: - url: /documentmanagementcommand components: schemas: 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 CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequest: required: - entityId - fileName type: object properties: fileName: minLength: 1 type: string description: Original file name example: passport.pdf entityId: minLength: 1 type: string description: Entity Id from FenX to link the document with the entity example: e1809731-77df-4e72-98e7-0d314b7a5151 journeyId: type: - string - 'null' description: Journey Id from FenX to link the document with the journey example: 61413fc2-0381-48f5-825b-225692f4d793 documentType: type: - string - 'null' description: The type of the document example: Driver license friendlyName: type: - string - 'null' description: The friendly name of the document documentRequirements: type: - array - 'null' items: $ref: '#/components/schemas/DocumentRequirementDto' description: List of Document Requirements to be fulfilled by this document isDocumentForESignature: type: - boolean - 'null' description: Is the document for eSignature example: false comesFromESignatureProvider: type: - boolean - 'null' description: Does document come from eSignature provider example: false properties: type: - object - 'null' additionalProperties: $ref: '#/components/schemas/PropertyDto' description: Custom document properties. example: firstName: type: Single value: Tom dateOfBirth: type: Single value: '2021-07-15' address: type: Collection dataGroupId: dfde9f06-040a-4127-b9a0-2c802a6502fc collections: 54a25d24-1a4b-45c6-a5b4-980e5d3a1df5: properties: country: Ireland city: Dublin street: Mayor Street 47010265-3b85-4407-be61-90d04525f020: properties: country: Ireland city: Dublin street: E Wall Rd accessLayers: allOf: - $ref: '#/components/schemas/AccessLayerDto' description: Document access layers. Can be only additive in relation to the PolicyEnforcedAccessLayers policyEnforcedAccessLayers: allOf: - $ref: '#/components/schemas/AccessLayerDto' description: Access layers enforced by policy. The minimal set of access layers. The property is immutable fileSize: type: - integer - 'null' description: The size of the file in bytes. Used to validate DocuSign size limits for eSignature documents. format: int64 example: 1048576 additionalProperties: false description: 'Metadata needed to create Temporary Document models to fulfill multiple requirements and generate signed Url to upload file. Contains all properties needed to fill the metadata of the document being uploaded.' CreateSignedUrlToUploadFileMultipleRequirementsResponse: type: object properties: DocumentRequirements: type: - array - 'null' items: $ref: '#/components/schemas/DocumentRequirementBulkDto' description: List of Document Requirement properties that the document Models are linked to documentType: type: - string - 'null' description: The type of the document example: Driver license status: type: - string - 'null' description: The status of the uploaded document example: Complete signedUrlToUpload: type: - string - 'null' description: 'Presigned URL to upload the file into S3 bucket. When this response originates from the temporary document endpoint, the URL''s signature includes the `x-amz-tagging` header. The caller must include `x-amz-tagging: TTL=enabled` as an HTTP header in the PUT request, otherwise the upload will fail with a 403 error.' warnings: type: - array - 'null' items: type: string description: List of warnings generated during document upload (e.g., DocuSign size limit warnings) additionalProperties: false description: Basic information from the upload document api for multiple requirements CreateSignedUrlToUploadFileMultipleRequirementsResponseServiceResponse: type: object properties: data: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadFileMultipleRequirementsResponse' description: Basic information from the upload document api for multiple requirements messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false ValidationErrorModel: type: object properties: propertyName: type: - string - 'null' errorMessage: type: - string - 'null' attemptedValue: {} errorCode: type: - string - 'null' additionalProperties: false DocumentRequirementDto: type: object properties: Id: type: string description: The Id of the requirement the document requirement belongs to format: uuid example: dc30fd5b-120b-4aaa-bed7-8d8508e24de5 RequirementId: type: string description: 'Alternative JSON property name for RequirementId to support internal generic lambda client implementations. Maps to the same underlying value as RequirementId.' format: uuid DocumentDataKey: type: - string - 'null' description: The unique identifier of the document requirement defined in policy configuration example: identificationDocuments DataKey: type: - string - 'null' description: 'Alternative JSON property name for DataKey to support internal generic lambda client implementations. Maps to the same underlying value as DataKey.' Name: type: - string - 'null' description: The Name of the document requirement defined in policy configuration example: Driver License RequirementName: type: - string - 'null' description: 'Alternative JSON property name for RequirementName to support internal generic lambda client implementations. Maps to the same underlying value as RequirementName.' IsMandatory: type: boolean description: IsMandatory attribute of the document requirement defined in policy configuration example: false DocumentAccessLayers: allOf: - $ref: '#/components/schemas/AccessLayerDto' description: Policy set access layers requirementModelId: type: - string - 'null' description: Id of the requirement aggregate model the document is linked to format: uuid example: 4719bcc0-9a73-46ea-9857-5fe5edb97d63 targetEntity: type: - string - 'null' description: The target entity of the requirement example: Client additionalProperties: false description: Contains document requirement attributes need to be deserialized as input of Initialize Lambda ServiceResponseMessage: type: object properties: message: type: - string - 'null' type: type: - string - 'null' errorCode: type: - string - 'null' additionalProperties: false PropertyDto: type: object properties: value: type: - string - 'null' description: The custom property value example: Ireland type: type: - string - 'null' description: The custom property type example: Country customTypeId: type: string description: The custom property type identifier format: uuid example: baee4b61-7ebb-48b2-a44b-18ce814b703b properties: type: - object - 'null' additionalProperties: type: object description: Nested properties that compose our custom property example: firstName: type: Single value: Tom dateOfBirth: type: Single value: '2021-07-15' address: type: Collection dataGroupId: dfde9f06-040a-4127-b9a0-2c802a6502fc collections: 54a25d24-1a4b-45c6-a5b4-980e5d3a1df5: properties: country: Ireland city: Dublin street: Mayor Street 47010265-3b85-4407-be61-90d04525f020: properties: country: Ireland city: Dublin street: E Wall Rd additionalProperties: false description: Contains all the attributes needed in order to add custom fields to the document metadata AccessLayerDto: type: object properties: geographic: uniqueItems: true type: - array - 'null' items: type: string description: Collection of geographic access layers example: - Global businessRelated: uniqueItems: true type: - array - 'null' items: type: string description: Collection of business related access layers example: - Enterprise additionalProperties: false description: DTO representing access layers attached ObjectServiceResponse: type: object properties: data: {} messages: type: - array - 'null' items: $ref: '#/components/schemas/ServiceResponseMessage' additionalProperties: false DocumentRequirementBulkDto: type: object properties: Id: type: string description: The Id of the requirement the document requirement belongs to format: uuid example: dc30fd5b-120b-4aaa-bed7-8d8508e24de5 RequirementId: type: string description: 'Alternative JSON property name for RequirementId to support internal generic lambda client implementations. Maps to the same underlying value as RequirementId.' format: uuid DocumentDataKey: type: - string - 'null' description: The unique identifier of the document requirement defined in policy configuration example: identificationDocuments DataKey: type: - string - 'null' description: 'Alternative JSON property name for DataKey to support internal generic lambda client implementations. Maps to the same underlying value as DataKey.' Name: type: - string - 'null' description: The Name of the document requirement defined in policy configuration example: Driver License RequirementName: type: - string - 'null' description: 'Alternative JSON property name for RequirementName to support internal generic lambda client implementations. Maps to the same underlying value as RequirementName.' IsMandatory: type: boolean description: IsMandatory attribute of the document requirement defined in policy configuration example: false DocumentAccessLayers: allOf: - $ref: '#/components/schemas/AccessLayerDto' description: Policy set access layers requirementModelId: type: - string - 'null' description: Id of the requirement aggregate model the document is linked to format: uuid example: 4719bcc0-9a73-46ea-9857-5fe5edb97d63 targetEntity: type: - string - 'null' description: The target entity of the requirement example: Client DocumentId: type: string description: The Id of the document that is satisfying the requirement format: uuid example: dc30fd5b-120b-4aaa-bed7-8d8508e24de5 additionalProperties: false description: Contains document requirement attributes set during the bulk upload for multiple requirements CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequestServiceRequest: type: object properties: data: allOf: - $ref: '#/components/schemas/CreateSignedUrlToUploadTemporaryFileMultipleRequirementsRequest' description: 'Metadata needed to create Temporary Document models to fulfill multiple requirements and generate signed Url to upload file. Contains all properties needed to fill the metadata of the document being uploaded.' 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 x-refined-from: - fenergo-documentmanagementcommand-v1-0-openapi.json - fenergo-documentmanagementcommand-v2-0-openapi.json