openapi: 3.2.0 info: title: Pagopa Dossier API version: 1.2.1 description: 'Operations tagged Dossier across 2 of this provider''s published API definitions: io-sign-issuer.yaml, pagopa-firma-con-io-issuer-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.io.pagopa.it/api/v1/sign description: production - url: http://localhost:7071/api/v1/sign description: local security: - SubscriptionKey: [] tags: - name: Dossier paths: /dossiers: post: operationId: createDossier tags: - Dossier summary: Create a Dossier requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDossierBody' responses: '201': description: The Dossier detail content: application/json: schema: $ref: '#/components/schemas/DossierDetailView' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Unexpected' servers: - url: https://api.io.pagopa.it/api/v1/sign description: production - url: http://localhost:7071/api/v1/sign description: local /dossiers/{dossierId}: get: operationId: getDossier tags: - Dossier summary: Get a Dossier by Id parameters: - in: path name: dossierId required: true schema: $ref: '#/components/schemas/Id' responses: '200': description: The Dossier detail content: application/json: schema: $ref: '#/components/schemas/DossierDetailView' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Unexpected' servers: - url: https://api.io.pagopa.it/api/v1/sign description: production - url: http://localhost:7071/api/v1/sign description: local /dossiers/{dossierId}/signature-requests: get: operationId: getRequestsByDossier tags: - Dossier summary: Get the Signature Requests created from a Dossier parameters: - in: path name: dossierId required: true schema: $ref: '#/components/schemas/Id' - in: query name: continuationToken required: false schema: type: string - in: query name: limit required: false schema: type: integer minimum: 25 maximum: 100 responses: '200': description: The Dossier detail content: application/json: schema: $ref: '#/components/schemas/SignatureRequestList' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Unexpected' servers: - url: https://api.io.pagopa.it/api/v1/sign description: production - url: http://localhost:7071/api/v1/sign description: local components: schemas: DocumentMetadataList: type: array items: $ref: '#/components/schemas/DocumentMetadata' minLength: 1 SignatureRequestList: type: object properties: items: type: array items: $ref: '#/components/schemas/SignatureRequestListView' continuation_token: type: string required: - items SignatureFieldToBeCreatedAttrs: type: object properties: coordinates: type: object properties: x: type: number y: type: number required: - x - y page: type: number minimum: 0 size: type: object properties: w: type: number minimum: 0 h: type: number minimum: 0 required: - w - h required: - coordinates - page - size Clause: type: object properties: title: type: string minLength: 5 maxLength: 80 type: type: string enum: - REQUIRED - UNFAIR - OPTIONAL required: - title - type SignatureField: type: object properties: attrs: $ref: '#/components/schemas/SignatureFieldAttrs' clause: $ref: '#/components/schemas/Clause' required: - attrs - clause DossierSupportEmail: type: string description: Issuer's support email for a specific dossier. format: email example: demo@example.com CreateDossierBody: type: object properties: title: $ref: '#/components/schemas/DossierTitle' support_email: $ref: '#/components/schemas/DossierSupportEmail' documents_metadata: $ref: '#/components/schemas/DocumentMetadataList' required: - title - documents_metadata DossierTitle: type: string minLength: 3 DocumentMetadata: type: object properties: title: type: string minLength: 3 maxLength: 60 signature_fields: type: array items: $ref: '#/components/schemas/SignatureField' required: - title Timestamp: type: string format: UTCISODateFromString description: A date-time field in ISO-8601 format and UTC timezone. x-import: '@pagopa/ts-commons/lib/dates' example: '2018-10-13T00:00:00.000Z' ProblemDetail: type: object properties: type: type: string format: uri description: 'An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g., using HTML).' default: about:blank example: https://example.com/problem/constraint-violation title: type: string description: 'A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable' status: type: integer format: int32 description: The HTTP status code generated by the origin server for this occurrence of the problem. minimum: 100 example: 200 exclusiveMaximum: 600 detail: type: string description: 'A human readable explanation specific to this occurrence of the problem.' example: There was an error processing the request instance: type: string format: uri description: An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. SignatureRequestStatus: type: string x-extensible-enum: - DRAFT - READY - WAIT_FOR_SIGNATURE - SIGNED - REJECTED - CANCELLED Id: type: string description: Entity Id format: NonEmptyString example: 01ARZ3NDEKTSV4RRFFQ69G5FAV x-import: '@pagopa/ts-commons/lib/strings' SignatureFieldAttrs: oneOf: - $ref: '#/components/schemas/ExistingSignatureFieldAttrs' - $ref: '#/components/schemas/SignatureFieldToBeCreatedAttrs' ExistingSignatureFieldAttrs: type: object properties: unique_name: type: string required: - unique_name SignatureRequestListView: type: object properties: id: $ref: '#/components/schemas/Id' signer_id: $ref: '#/components/schemas/Id' dossier_id: $ref: '#/components/schemas/Id' status: $ref: '#/components/schemas/SignatureRequestStatus' created_at: $ref: '#/components/schemas/Timestamp' updated_at: $ref: '#/components/schemas/Timestamp' expires_at: $ref: '#/components/schemas/Timestamp' required: - id - signer_id - dossier_id - status - created_at - updated_at - expires_at DossierDetailView: type: object properties: id: $ref: '#/components/schemas/Id' title: $ref: '#/components/schemas/DossierTitle' support_email: $ref: '#/components/schemas/DossierSupportEmail' documents_metadata: $ref: '#/components/schemas/DocumentMetadataList' created_at: $ref: '#/components/schemas/Timestamp' updated_at: $ref: '#/components/schemas/Timestamp' required: - id - title - documents_metadata - created_at - updated_at responses: Forbidden: description: You don't have enough privileges to perform this action content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' Unexpected: description: Unexpected error content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' BadRequest: description: Validation error on body content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' NotFound: description: The specified resource was not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' TooManyRequests: description: Too Many Requests content: application/json: schema: $ref: '#/components/schemas/ProblemDetail' securitySchemes: SubscriptionKey: type: apiKey name: Ocp-Apim-Subscription-Key in: header description: The API key can be obtained from the reserved area x-refined-from: - io-sign-issuer.yaml - pagopa-firma-con-io-issuer-openapi.yml